Recent

Author Topic: Compilar desde Linux x64 para Linux x86  (Read 4319 times)

GAN

  • Sr. Member
  • ****
  • Posts: 370
Compilar desde Linux x64 para Linux x86
« on: January 27, 2017, 11:43:17 pm »
Al final me di cuenta que mis programas solo corrían en distribuciones de Linux de 64 bits porque efectivamente programo y compilo en 64. El tema es que entiendo poco de las opciones de compilación, pero cuando configuro para que compile en linux x86 32bits y pulso el botón probar me tira errores.
Por ejemplo:
Sistema Op. objetivo: Linux
Familia CPU objtivo: i386
Procesador objetivo: predeterminado

Errores:
ADVERTENCIA: library search path no existe: /opt/gnome/lib
ADVERTENCIA: unit search path no existe: /usr/share/lazarus/1.6/components/lazreport/source/lib/x86_64-linux
ERROR: Unidad compilada FPC no encontrada: system.ppu
ERROR: Unidad compilada FPC no encontrada: objpas.ppu
ERROR: Unidad compilada FPC no encontrada: sysutils.ppu
ERROR: Unidad compilada FPC no encontrada: classes.ppu
ERROR: Unidad compilada FPC no encontrada: avl_tree.ppu
ERROR: Unidad compilada FPC no encontrada: zstream.ppu

La otra opción es instalar Lazarus en una VM con Linux 32bits, como hago para compilar para Windows, pero existiendo la posibilidad me resultaría más cómodo de la forma en que no logro hacerlo.

Si alguien conoce de tema, gracias de antemano.

Saludos.
Lazarus 2.0.8 FPC 3.0.4 Linux Mint Mate 19.3
Zeos 7̶.̶2̶.̶6̶ 7.1.3a-stable - Sqlite 3.32.3 - LazReport

lainz

  • Hero Member
  • *****
  • Posts: 4449
    • https://lainz.github.io/
Re: Compilar desde Linux x64 para Linux x86
« Reply #1 on: January 28, 2017, 12:34:22 am »
Probaste usar fpcupdeluxe para instalar las herramientas para hacer el 'cross compile'?

Sino en la wiki:
http://wiki.lazarus.freepascal.org/Cross_compiling#From_Linux_x64_to_Linux_i386

GAN

  • Sr. Member
  • ****
  • Posts: 370
Re: Compilar desde Linux x64 para Linux x86
« Reply #2 on: January 28, 2017, 01:52:15 am »
Probaste usar fpcupdeluxe para instalar las herramientas para hacer el 'cross compile'?
No, parece interesante pero quiero tocar poco y nada la IDE de Lazarus ya que tengo que presentar un trabajo la semana próxima.

Quote
Sino en la wiki:
http://wiki.lazarus.freepascal.org/Cross_compiling#From_Linux_x64_to_Linux_i386

En efecto, no tengo ni i386-linux-ld ni i386-linux-a
Ahora, se supone que haciendo esto
Code: Pascal  [Select][+][-]
  1. #!/bin/bash
  2.  
  3. # Create /usr/bin/i386-linux-ld
  4. cat >/usr/bin/i386-linux-ld << EOF
  5. #!/bin/bash
  6. ld -A elf32-i386 $@
  7. EOF
  8. chmod +x /usr/bin/i386-linux-ld
  9.  
  10. # Create /usr/bin/i386-linux-as
  11. cat >/usr/bin/i386-linux-as << EOF
  12. #!/bin/bash
  13. as --32 $@
  14. EOF
  15. chmod +x /usr/bin/i386-linux-as

supongo que copiando y pegando en la terminal obtengo esos dos archivos. Luego con:

Code: Pascal  [Select][+][-]
  1. cd /usr/share/fpcsrc/<version>
  2. sudo make all CPU_TARGET=i386
  3.  

Donde dice <version> debe reemplazar con algo?

y finalmente:

Code: Pascal  [Select][+][-]
  1. sudo make crossinstall CPU_TARGET=i386

Con esto agrego la opción para compilar Linux i386 sin tocar la compilación x86_64 ? No hay riesgo nada? Perdón la paranoia pero ya se me rompió una vez la IDE.

Saludos.
Lazarus 2.0.8 FPC 3.0.4 Linux Mint Mate 19.3
Zeos 7̶.̶2̶.̶6̶ 7.1.3a-stable - Sqlite 3.32.3 - LazReport

lainz

  • Hero Member
  • *****
  • Posts: 4449
    • https://lainz.github.io/
Re: Compilar desde Linux x64 para Linux x86
« Reply #3 on: January 28, 2017, 03:00:35 am »
Supongo que donde dice version es la version de FPC que tengas instalado, fijate que apunta al source.

La verdad nunca lo probé, pero creo que en ningún paso toca Lazarus, solo toca FPC.

 

TinyPortal © 2005-2018