On Fri, 01 Aug 2003 19:30:12 +0200, Nick Name wrote:

> On Fri, 01 Aug 2003 16:51:45 +0200
> "Francesco Bochicchio" <[EMAIL PROTECTED]> wrote:
> 
> 
>>  > - è possibile linkare staticamente solo alcune librerie (per esempio
>>  > tutte tranne le opengl) ?
>>  > 
>>  Si.
>> 
>> 
> Ehm, come si fa? L'opzione "-static" di gcc linka tutto come trova...
> 
A questo ti hanno risposto : specifica i .a insieme ai .o.

>>  > - è possibile prendere un eseguibile linkato dinamicamente e
>>  > trasformarlo in uno linkato staticamente?
>>  >
>>  Mah, in generale credo di no. Per generare un eseguibile, un linker
>>  (tipo ld) ha bisogno di informazioni contenute nei 'relocatable object
>>  files'('.o') che di solito un
>>  eseguibile non contene piu' (eccetto forse se compilato con le opzioni
>>  di debugging). Almeno credo.
> 
> Però mi pare strano perchè in fondo uno l'eseguibile linkato lo si
> ricostruisce in memoria con ld.so a partire dall'eseguibile non linkato e
> dai .so, quindi perchè non si dovrebbe riuscire a ricostruirlo su disco?
> 
Boh??? Non ne so abbasanza per darti una risposta certa. La mia
impressione gia' te l'ho detta : credo che il passaggio da .o a eseguibile
comporti una perdita di informazioni, per cui la cosa non e' reversibile.


>>  i .a sono librerie statiche
>>  [...]
>>  i .so sono librerie dinamiche
> 
> Quello che mi chiedo è: ma non bastano i .so? Perchè ci vogliono anche i
> .a, in fondo il codice che contengono è lo stesso o sbaglio? (o
> viceversa, non bastano solo i .a ?)
> 
Il codice e' lo stesso, le 'informazioni ausiliarie' e l'organizzazione
della libreria no. 

Se non sbaglio,  Debian installa solo le librerie dinamiche con i
pacchetti 'libXXX' (librerie & run-time). Le librerie statiche sono di
solito contenute solo nei pacchetti di sviluppo (XXX-dev), 
per permettere agli sviluppatori di linkare staticamente i loro programmi,
se cosi' desiderano. Quindi ancora una volta Debian esaudisce i tuoi
desideri :-).

P.S. : mentre sono certo che da una libreria statica si possa ottenere una
libreria dinamica, ho dei dubbi sul contrario : forse anche qui c'e' una
perdita di informazione non reversibile (?).


Ciao
----
FB


Rispondere a