🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #215

Re: Convertir fichero objeto (.o) a ejectable

#215
From: Pascal J. Bourguignon
Date: Sun, 29 Nov 2009 00:47
55 lines
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__
Technical Details
Message-ID: <87skby40o9.fsf@galatea.local>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!ecngs!feeder2.ecngs.de!newsfeed.freenet.de!bolzen.all.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
References: <4b0e5970$1_3@filemon1.isp.telecable.es> <87k4xd7agp.fsf@galatea.local> <4b117a6a$1_4@filemon2.isp.telecable.es>

Show Full Headers
Complete Article Headers
X-Google-Thread: 646d03421f,555ac06258fe7e63
X-Google-Attributes: gid646d03421f,public,usenet
X-Google-NewGroupId: yes
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!ecngs!feeder2.ecngs.de!newsfeed.freenet.de!bolzen.all.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: pjb@informatimago.com (Pascal J. Bourguignon)
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Convertir fichero objeto (.o) a ejectable
Date: Sun, 29 Nov 2009 01:47:18 +0100
Organization: Informatimago
Lines: 55
Message-ID: <87skby40o9.fsf@galatea.local>
References: <4b0e5970$1_3@filemon1.isp.telecable.es> <87k4xd7agp.fsf@galatea.local> <4b117a6a$1_4@filemon2.isp.telecable.es>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: individual.net tP9KienVdYaQqGrI8GZsMgs3Kx2kUWUPgv1/610vkszQdVc0qx
Cancel-Lock: sha1:MDFmMTlkODFiN2RkMzliZDgzODAwMjBhOWExYWVlMzc2YWU3ZGU5Yw== sha1:FCVAF8VhY3ztvbcY4rKNVHz3G+g=
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA
      oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9
      033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac
      l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR
      mV+hO/VvFAAAAABJRU5ErkJggg==
X-Accept-Language:         fr, es, en
X-Disabled: X-No-Archive: no
User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.3 (darwin)