Problemas al compilar Pascal con GPC (Solucionado)

Imagen de Pris
0 puntos

Hola señores. ¿Como están?

No tengo mucha experiencia con Ubuntu, utilizo lo básico y cualquier instalación más complicada es un problema para mí. Pero estoy aprendiendo. Y ustedes notarán mi ignorancia.

El caso es que llevo días luchando para instalar GNU Pascal para compilar mis programillas en Pascal Extended. Después de mucho estudiar el tema, me descargué un GPC comprimido con archivos binarios de la mísmisima página de GNU Pascal. Me pareció buena opción y además me ponía que ya tenía incluído el GCC. Era este el enlace de la versión:

gpc-20041218-with-gcc.i686-pc-linux-gnu.tar.gz 7.8M GPC binary for Linux/IA32

Enlas instrucciones de instalación me decía que pegara dicho archivo en / y que al descomprimirlo con:

SUDO tar -xzvf archivo.tar.gz

Se auto colocarian los archivos en /usr/local. Y efectivamente, eso ha echo. Casi muero de alegria y no me creía que había sido tan fácil. Lo revisé muchas veces y parece haberse instalado bien ya que al escribir GPC en el terminal me pone:

"GNU Pascal version 20041218, based on gcc-3.3.3.
Copyright (C) 1987-2004 Free Software Foundation, Inc.

GNU Pascal is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

GNU Pascal is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

For more version information on components of the GNU Pascal compiler,
especially useful when reporting bugs, type the command
`gpc --verbose'.

Most used command line options:
-c Compile or assemble the source files, but do not link.
-o FILE Place output in file FILE.
--automake Automatically (re)compile modules/units.
-v Be verbose.

The command line options are described in the online documentation.
`info -f gpc invoking' describes them in detail.
Report bugs to ."

Y con eso pensé que estaba todo listo, pero algo se me tiene que haber pasado, porque al intentar compilar con :

gpc --extended-pascal nombre.pas

El resultado es:

/usr/bin/ld: no se puede encontrar crt1.o: No existe el archivo o el directorio
/usr/bin/ld: no se puede encontrar crti.o: No existe el archivo o el directorio
collect2: ld returned 1 exit status

Hay mutitud de foros que piden ayuda para este error, y ninguna de las soluciones propuestas que en algunos casos han solucionado los problemas me valen. Les ocurre a desarrolladores que intentan compilar c++ y otros lenguajes. Les ahorraré las siguientes sugerencias de descargas:

-> build-essencial
-> libc6-dev
-> linux-kernel-headers
-> linux-libc-dev

Ya los tengo en su última versión.

No sé donde más buscar y no tengo conocimientos para encontrar la solución por mi misma.
Me urge y si ustedes tienen algo de tiempo y me pueden echar una mano se lo agradeceré.

Por último, contarles que mi versión nuevecita recién instalada de Ubuntu es la 12.10 de 32 bits. Y que en muchos de los foros donde se han registrado casos como el mío la versión de ubuntu coincidia.
Les comento también, para ahorrarles sugerencias, que necesito la versión Extended de pascal, no me vale el compilador de Free Pascal y no tengo interés ni de pasarme a compiladores gráficos integrados ni de cambiar al compialdor de Free pascal. Solamente tengo interés en solventar este error que les describo.

Muchas gracias de antemano y espero que puedan ayudarme porque son ustedes mi última esperanza.

Un saludo, Pris.

Imagen de Goyo
+1
0
-1

Pues hasta donde yo sé esta clase de problemas se suelen atacar siempre de la misma forma:
1. Comprobar que los archivos que el compilador no encuentra están.
2. Averiguar la manera de indicarle al compilador donde encontrarlos.

Si esto no funciona, repasarlo todo de nuevo porque es fácil cometer un error al configurar o pasarle opciones compilador. Si sigue sin funcionar es posible que sea otro problema, a veces una incompatibilidad de la ABI o cosas por el estilo aparecen enmascaradas bajo un error "no se encuentra el archivo" que solo sirve para despistar. Lo suyo es consultar con alguien experto en el manejo del compilador.

Es desalentador que digas que somos tu última esperanza, porque supongo que deben quedar en el mundo más usuarios de GNU Pascal pero me parece muy improbable que alguno de ellos esté aquí. ¿Seguro que no se te ocurre ninguna otra forma de encontrarlos?

Según lo veo yo podría resultarte más trabajoso compilar tu código con GNU Pascal en una distribución moderna que portarlo a otro lenguaje (no es sugerencia sino advertencia). ¿No hay otras implementaciones? Yo no conozco ninguna.

+1
0
-1
Imagen de Goyo
+1
0
-1

/usr/bin/ld: no se puede encontrar crt1.o: No existe el archivo o el directorio
Si no me equivoco ld es parte de gcc tu gpc incluye gcc y estará en /usr/local. Sin embargo está usando el que hay en /usr/bin, que es el que se instala con el paquete estándar de Ubuntu. No sé si esto es bueno o malo o qué pero no es lo que yo esperaría.

+1
0
-1
Imagen de Pris
+1
0
-1

Hola Goyo, gracias por responder.

1. Comprobar que los archivos que el compilador no encuentra están.
2. Averiguar la manera de indicarle al compilador donde encontrarlos.

1. ld es un ejecutable, no me dice donde debería estar crt1.o por lo que no sé donde debería buscar para ver si está. Estoy buscando el script que genera ld, para ver donde debería estar el archivo, pero no lo encuentro. Si lo sabe le agradecería la información.
2. Como ya he dicho no sé donde encontrarlo, si lo encuentro descubriré la forma de indicarle al compilador.

Según lo veo yo podría resultarte más trabajoso compilar tu código con GNU Pascal en una distribución moderna que portarlo a otro lenguaje (no es sugerencia sino advertencia).
Necesito esta versión y este compilador.

Si no me equivoco ld es parte de gcc tu gpc incluye gcc y estará en /usr/local. Sin embargo está usando el que hay en /usr/bin, que es el que se instala con el paquete estándar de Ubuntu. No sé si esto es bueno o malo o qué pero no es lo que yo esperaría.

Buena observación. Fui a mirar y en usr/local/bin no está el ejecutable ld, solamente hay el que busca el compilador en usr/bin/. Opté por la instalación que he comentado porque me ha resultado imposible de otra manera, en el repositorio no estaba el paquete y no sabía que más podía hacer.
¿Opina que debería intentar otro tipo de instalación?

Gracias de nuevo.
Pris.

+1
0
-1

¡¡¡Gracias a todos por el acompañamiento!!!

Imagen de Goyo
+1
+1
-1

no sé donde encontrarlo, si lo encuentro descubriré la forma de indicarle al compilador.

La idea es buscarlos con alguna utilidad de búsqueda de archivos, pero concretamente en este caso si se ha instalado libc6-dev deberían estar en /usr/lib/i386-linux-gnu

Buena observación. Fui a mirar y en usr/local/bin no está el ejecutable ld,

No, muy mala en realidad. ld no es parte de cgg, que solo incluye compiladores, sino de binutils, que contiene las utilidades de ensamblado, enlazado y otras. El binario de GNU Pascal no incluye un enlazador, tiene que usar el que esté instalado en el sistema y eso es lo que hace. No hay nada raro en esto.

+1
+1
-1
Imagen de Pris
+1
0
-1

Perdone por la negrita, acabo de descubrir cómo marcar el texto citado como lo hace.

+1
0
-1

¡¡¡Gracias a todos por el acompañamiento!!!

Imagen de Pris
+1
0
-1

Hola a todos.
Goyo, primero, gracias por dedicarme tu tiempo.

...pero concretamente en este caso si se ha instalado libc6-dev deberían estar en /usr/lib/i386-linux-gnu.

Efectivamente ahí está el archivo. He entendido mejor como funcionan las cosas y me he dado cuenta de que no tengo conocimientos para esa clase de problemas ni sabiendo cual es la solución. Solamente habrá que indicarle al compilador donde está el archivo y creo que la solución puede estar aquí:

http://stackoverflow.com/questions/6329887/compiling-problems-cannot-find-crt1-o

Pero esto ya escapa a mis conocimientos y por lo pronto tengo prisa porque tengo que practicar pascal para sacar las últimas asignaturas de la carrera, por eso opté por instalar la herramienta de GNU Pascal para Windows que aunque no me guste no me ha dado ni un sólo problema y he podido empezar a estudiar. Sin más rodeos, dejo de molestarles con mi inexperiencia y doy por solucionado el tema, porque realmente la solución está aqui aunque yo no sepa utilizarla, estoy segura de que los más expertos sabrán.

Gracias a todos.
Un saludo.
Pris.

+1
0
-1

¡¡¡Gracias a todos por el acompañamiento!!!

Imagen de gato2707
+1
-1
-1

GNU Pascal es un compilador al que ya hace algunos años no se le da ningún mantenimiento. Tu opción lógica debería ser FreePascal, que no presenta ningún problema en su instalación y ejecución.

FreePascal es multiplataforma, es decir encontrarás versiones para todos (o prácticamente todos) los sistemas operativos. El código que escribas para un sistema operativo podrá ser compilado sin problemas para otro sistema operativo. El lema de FP es: "Codifica una vez, compila donde quieras".

FP incluso cuenta con IDE's RAD propios, el más conocido es Lazarus, pero también existe MSGI y algunas otras alternativas menores.

+1
-1
-1

Saludos desde México
Mi Web: El Gato con Linux