Thread View: es.comp.os.linux.programacion
4 messages
4 total messages
Started by Kernel
Thu, 26 Nov 2009 10:33
Convertir fichero objeto (.o) a ejectable
Author: Kernel
Date: Thu, 26 Nov 2009 10:33
Date: Thu, 26 Nov 2009 10:33
11 lines
1326 bytes
1326 bytes
He instalado el XDS, que es un compilador de Modula-2. En principio creo que funciona bien, ya que compilo con el comando xc y me genera el fichero objeto .o, pero no se como generar el ejecutable a partir de este .o Supongo que un fichero objeto es algo independiente del lenguaje original, y que un .o es un .o venga de modula2 o de C o de lo que sea �es as�? Si es as�, �como paso este .o a un ejecutable? Saludos
Re: Convertir fichero objeto (.o) a ejectable
Author: Pascal J. Bourguignon
Date: Thu, 26 Nov 2009 12:10
Date: Thu, 26 Nov 2009 12:10
39 lines
2766 bytes
2766 bytes
Kernel <C0RR30D3K3RN3L@6M41L.C0M> writes: > He instalado el XDS, que es un compilador de Modula-2. En principio > creo que funciona bien, ya que compilo con el comando xc y me genera > el fichero objeto .o, pero no se como generar el ejecutable a partir > de este .o > > Supongo que un fichero objeto es algo independiente del lenguaje > original, y que un .o es un .o venga de modula2 o de C o de lo que sea > �es as�? > > Si es as�, �como paso este .o a un ejecutable? Tienes que hacer una edici�n de enlaces, un "link edit". Eso se puede hacer normalmente con ld(1). Tienes que saber qu� librerias necesitas con los archivos objetos. En general, esos no son independiente, pero se necesita al menos una peque�a libreria de "run-time". Por ejemplo, en el caso de los programas C, hace falta /usr/lib/crt1.o, que contiene el punto de entrada real del programa y llama a la funci�n main. Por otros lenguajes, es posible que se use la misma, o otra libreria. Se puede usar ld directamente, pero hay que darle todas la librerias necesarias. Si el programa necesita las librerias de C, se puede usar gcc para hacer la edici�n de enlaces, pues gcc llamar� ld con ellas. ld -o pgm module.o run-time-lib.a ... gcc -o pgm module1.o ... -L/usr/lib -lbib1 -lbib2 ... Tambien, es posible que haya un edit�r de enlaces especifico a un lenguaje, o al menos un piloto que como gcc llamara ld con las librerias necesarias por el lenguaje. -- __Pascal Bourguignon__
Re: Convertir fichero objeto (.o) a ejectable
Author: Kernel
Date: Sat, 28 Nov 2009 19:30
Date: Sat, 28 Nov 2009 19:30
51 lines
3296 bytes
3296 bytes
Pascal J. Bourguignon escribi�: > Kernel <C0RR30D3K3RN3L@6M41L.C0M> writes: > >> He instalado el XDS, que es un compilador de Modula-2. En principio >> creo que funciona bien, ya que compilo con el comando xc y me genera >> el fichero objeto .o, pero no se como generar el ejecutable a partir >> de este .o >> >> Supongo que un fichero objeto es algo independiente del lenguaje >> original, y que un .o es un .o venga de modula2 o de C o de lo que sea >> �es as�? >> >> Si es as�, �como paso este .o a un ejecutable? > > Tienes que hacer una edici�n de enlaces, un "link edit". > Eso se puede hacer normalmente con ld(1). > > Tienes que saber qu� librerias necesitas con los archivos objetos. En > general, esos no son independiente, pero se necesita al menos una > peque�a libreria de "run-time". Por ejemplo, en el caso de los > programas C, hace falta /usr/lib/crt1.o, que contiene el punto de > entrada real del programa y llama a la funci�n main. Por otros > lenguajes, es posible que se use la misma, o otra libreria. > > Se puede usar ld directamente, pero hay que darle todas la librerias > necesarias. Si el programa necesita las librerias de C, se puede usar > gcc para hacer la edici�n de enlaces, pues gcc llamar� ld con ellas. > > ld -o pgm module.o run-time-lib.a ... > > gcc -o pgm module1.o ... -L/usr/lib -lbib1 -lbib2 ... > > > Tambien, es posible que haya un edit�r de enlaces especifico a un > lenguaje, o al menos un piloto que como gcc llamara ld con las > librerias necesarias por el lenguaje. > > Pues entonces si que hace falta enlazar con la librer�as apropiadas, pero como no se cuales y me parece bastante complicado hacerlo funcionar, me parece que al final voy a optar por otra soluci�n: voy a utilizar la versi�n de Windows del compiladoren de Modula2 en Wine, que funciona perfectamente. La verdad que no entiendo porque para Windows hay el compilador de Modula-2 tiene interfaz gr�fica, y no hay ninguna complicaci�n ni para instalarlo ni para compilar, y en cambio para Linux es en modo texto y una verdadera odisea para hacerlo funcionar, pero en fin, es lo que hay. Gracias y saludos.
Re: Convertir fichero objeto (.o) a ejectable
Author: Pascal J. Bourguignon
Date: Sun, 29 Nov 2009 00:47
Date: Sun, 29 Nov 2009 00:47
55 lines
4141 bytes
4141 bytes
Kernel <C0RR30D3K3RN3L@6M41L.C0M> writes: > Pascal J. Bourguignon escribi�: >> Kernel <C0RR30D3K3RN3L@6M41L.C0M> writes: >> >>> He instalado el XDS, que es un compilador de Modula-2. En principio >>> creo que funciona bien, ya que compilo con el comando xc y me genera >>> el fichero objeto .o, pero no se como generar el ejecutable a partir >>> de este .o >>> >>> Supongo que un fichero objeto es algo independiente del lenguaje >>> original, y que un .o es un .o venga de modula2 o de C o de lo que sea >>> �es as�? >>> >>> Si es as�, �como paso este .o a un ejecutable? >> Tienes que hacer una edici�n de enlaces, un "link edit". >> Eso se puede hacer normalmente con ld(1). >> Tienes que saber qu� librerias necesitas con los archivos objetos. >> En >> general, esos no son independiente, pero se necesita al menos una >> peque�a libreria de "run-time". Por ejemplo, en el caso de los >> programas C, hace falta /usr/lib/crt1.o, que contiene el punto de >> entrada real del programa y llama a la funci�n main. Por otros >> lenguajes, es posible que se use la misma, o otra libreria. >> Se puede usar ld directamente, pero hay que darle todas la librerias >> necesarias. Si el programa necesita las librerias de C, se puede usar >> gcc para hacer la edici�n de enlaces, pues gcc llamar� ld con ellas. >> ld -o pgm module.o run-time-lib.a ... >> gcc -o pgm module1.o ... -L/usr/lib -lbib1 -lbib2 ... >> Tambien, es posible que haya un edit�r de enlaces especifico a un >> lenguaje, o al menos un piloto que como gcc llamara ld con las >> librerias necesarias por el lenguaje. >> > > Pues entonces si que hace falta enlazar con la librer�as apropiadas, > pero como no se cuales y me parece bastante complicado hacerlo > funcionar, me parece que al final voy a optar por otra soluci�n: voy a > utilizar la versi�n de Windows del compiladoren de Modula2 en Wine, > que funciona perfectamente. > > La verdad que no entiendo porque para Windows hay el compilador de > Modula-2 tiene interfaz gr�fica, y no hay ninguna complicaci�n ni para > instalarlo ni para compilar, y en cambio para Linux es en modo texto y > una verdadera odisea para hacerlo funcionar, pero en fin, es lo que > hay. Probablemente hay en alg�n lugar un archivo leeme or readme o otra documentaci�n que explica como compilar y enlacear los programas compilados por este compilador XDS. En general productos comerciales vienen con toda la documentaci�n que hace falta, y se puede comprar soporte... -- __Pascal Bourguignon__
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads