Forum > Spanish

Compilar desde Linux x64 para Linux x86

(1/1)

GAN:
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.

lainz:
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:

--- Quote from: lainz on January 28, 2017, 12:34:22 am ---Probaste usar fpcupdeluxe para instalar las herramientas para hacer el 'cross compile'?
--- End quote ---
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
--- End quote ---

En efecto, no tengo ni i386-linux-ld ni i386-linux-a
Ahora, se supone que haciendo esto

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---#!/bin/bash # Create /usr/bin/i386-linux-ldcat >/usr/bin/i386-linux-ld << EOF#!/bin/bashld -A elf32-i386 $@EOFchmod +x /usr/bin/i386-linux-ld # Create /usr/bin/i386-linux-ascat >/usr/bin/i386-linux-as << EOF#!/bin/bashas --32 $@EOFchmod +x /usr/bin/i386-linux-as
supongo que copiando y pegando en la terminal obtengo esos dos archivos. Luego con:


--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---cd /usr/share/fpcsrc/<version>sudo make all CPU_TARGET=i386 
Donde dice <version> debe reemplazar con algo?

y finalmente:


--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---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.

lainz:
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.

Navigation

[0] Message Index

Go to full version