Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Convivencia fpc-32 + fpc-64 (https://www.clubdelphi.com/foros/showthread.php?t=67650)

arturom 28-04-2010 12:40:52

Convivencia fpc-32 + fpc-64
 
Hola,
he evolucionado y me he pasado a los 64 bits, pero ahora tengo una problema.

He instalado sin problemas Lazarus + fpc de 64 sobre un sistema Luinux/Ubuntu pero, como es lógico, todavía tengo que seguir desarrollando y, sobre todo, manteniendo las aplicaciones de 32.

¿Hay algún problema en instalar fpc-32 y fpc-64 juntos en el mismo ordenador?

Saludos

Casimiro Noteví 28-04-2010 12:50:36

Me parece recordar que no existe un fpc32 y otro fpc64, sino que existe un fpc que crea código 32 ó 64 según un parámetro que le pasas.

De todas formas, esto te lo confirmará nuestro compañero ÑuÑo Martínez, que es un gran conocedor del fpc :)

Ñuño Martínez 28-04-2010 14:02:43

Me pitan los oídos. ¿Alguien me ha mentado?

Lo cierto es que no tengo muy claro cómo generar ejecutables de 64 bit. He revisado las opciones de fpc y tenemos dos:

Código:

-A<x>  Output format:
      -Adefault  Use default assembler
      -Aas      Assemble using GNU AS
      -Anasmcoff COFF (Go32v2) file using Nasm
      -Anasmelf  ELF32 (Linux) file using Nasm
      -Anasmwin32Win32 object file using Nasm
      -AnasmwdosxWin32/WDOSX object file using Nasm
      -Awasm    Obj file using Wasm (Watcom)
      -Anasmobj  Obj file using Nasm
      -Amasm    Obj file using Masm (Microsoft)
      -Atasm    Obj file using Tasm (Borland)
      -Aelf      ELF (Linux) using internal writer
      -Acoff    COFF (Go32v2) using internal writer
      -Apecoff  PE-COFF (Win32) using internal writer
  -T<x>  Target operating system:
      -Temx      OS/2 via EMX (including EMX/RSX extender)
      -Tfreebsd  FreeBSD
      -Tgo32v2  Version 2 of DJ Delorie DOS extender
      -Tlinux    Linux
      -Tnetbsd  NetBSD
      -Tnetware  Novell Netware Module (clib)
      -Tnetwlibc Novell Netware Module (libc)
      -Topenbsd  OpenBSD
      -Tos2      OS/2 / eComStation
      -Tsunos    SunOS/Solaris
      -Tsymbian  Symbian OS
      -Twatcom  Watcom compatible DOS extender
      -Twdosx    WDOSX DOS extender
      -Twin32    Windows 32 Bit
      -Twince    Windows CE

También tenemos alguna más adicional, como -C<x>, que permiten apurar algo más los tamaños de algunos datos, cómo manejar las pilas, los montones, etc. Sin embargo no veo nada que haga referencia a procesadores de 64 bit.

De todas formas, el programa "fpc" es un cargador: el verdadero compilador es otro, en mi caso llamado ppc386. Supongo que para generar ejecutables de 64 bit habrá que utilizar otro compilador distinto. No creo que haya problemas en instalar varios compiladores, cada uno para un procesador diferente, ya que cada uno busca las bibliotecas en diferentes directorios. Por ejemplo, en mi Linux los busca en "/usr/lib/fpc/2.2.4/units/i386-linux", mientras que un compilador para mac clásico los buscaría en "/usr/lib/fpc/2.2.4/units/ppc-mac", para windows de 64 bit en "/usr/lib/fpc/2.2.4/units/i64-windows", etc. En este aspecto FPC es más "inteligente" que GCC. :D

arturom 29-04-2010 10:01:36

Hola,
gracias Ñuño, igual no me he explicado bien.

Ya tengo instalada, funcional y operativa la versión del sistema y la de Lazarus de 64 bits.

Lo hago desde el snapshot, descargando el fichero rpm y convirtiéndolo a deb a través del programa alien.

El problema es que al abrir los proyectos que tengo en producción o acabando, lazarus me avisa de que no encuentra el ppc386 ya que la versión instalada es la ppcx64.

Lazarus permite el crosscompiling sin problemas, pero no se puede hacer una compilación multi-procesador. No puedes compilar para 64 desde ppc386, ni para 32 desde ppcx64, debes tener instalados cada uno de ellos, de forma que lazarus, al compilar, elige el correspondiente según el destino del ejecutable.

La pregunta es como instalar fpc32 en un sistema de 64 bits.

Seguiré investigando y mientras usaré el portátil que tiene ppc386.

Ñuño Martínez 29-04-2010 10:53:13

Cita:

Empezado por arturom (Mensaje 362223)
Lo hago desde el snapshot, descargando el fichero rpm y convirtiéndolo a deb a través del programa alien.

¿Y por qué no utilizas directamente paquetes deb? Tanto Debian como (K/X)Ubuntu los incluyen, e incluso la página de Lazarus tiene su propio distribuidor de paquetes.

Cita:

Empezado por arturom (Mensaje 362223)
Lazarus permite el crosscompiling sin problemas, pero no se puede hacer una compilación multi-procesador. No puedes compilar para 64 desde ppc386, ni para 32 desde ppcx64, debes tener instalados cada uno de ellos, de forma que lazarus, al compilar, elige el correspondiente según el destino del ejecutable.

Evidentemente. Es como intentar compilar para PowerPC desde ppc386.

Cita:

Empezado por arturom (Mensaje 362223)
La pregunta es como instalar fpc32 en un sistema de 64 bits.

Pues aunque parezca una prerugrollada, te bajas el paquete correspondiente del compilador y lo instalas. Vamos, digo yo, que no lo he probado pero debería funcionar o algo.

arturom 04-05-2010 09:28:00

Hola,
perdón por la tardanza en contestar.

Gracias de nuevo Ñuño pero no, el problema es que ya está instalada la versión de 64 y por lo tanto, no me deja instalar ningún paquete de 32.

De forma obvia, tampoco me deja compilar el paquete de código fuente de 32 por que no tengo las librerías necesarias.

Creía que una posible opción sería compilar el paquete de 32 en un ordenador con el sistema de 32 y posteriormente trasladar todo el directorio fpcsrc ya compilado al ordenador con 64, pero tampoco funciona, dado que para compilar en 32 me pide librerías que no tengo.

Seguiré investigando...

Saludos


La franja horaria es GMT +2. Ahora son las 22:25:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi