PDA

Visualizza la versione completa : [C] Librerie gmp


lordalbert
08-12-2010, 14:31
Ciao. Ho letto di gmp... devo installarla sul sistema, ma una volta compilato il sorgente ed ottenuto un .exe, devo installare di nuovo la libreria sui sistemi in cui voglio eseguire il programma? oppure posso usare il programma senza aver installato quella libreria?

ramy89
08-12-2010, 18:35
Il compilatore crea il file .exe attingendosi alle librerie che hai installate sul sistema,ma una volta creato il file .exe esso scritto in linguaggio macchina.
Utilizziamo continuamente programmi scritti originariamente in vari linguaggi,ma non ci serve nulla per leggerli,il linguaggio macchina "compreso" dal computer senza installare niente.
Quindi la risposta si,non hai bisogno di installare niente.

lordalbert
09-12-2010, 00:52
ok, grazie :)

MItaly
09-12-2010, 01:11
Originariamente inviato da ramy89
Il compilatore crea il file .exe attingendosi alle librerie che hai installate sul sistema,ma una volta creato il file .exe esso scritto in linguaggio macchina.
Utilizziamo continuamente programmi scritti originariamente in vari linguaggi,ma non ci serve nulla per leggerli,il linguaggio macchina "compreso" dal computer senza installare niente.
Quindi la risposta si,non hai bisogno di installare niente.
Non necessariamente, possibile (e spesso si fa) configurare la libreria in maniera tale che sia compilata come dll (o shared object), per cui bisogna distribuire la dll generata assieme all'exe che da essa dipende.

ramy89
09-12-2010, 12:25
Ah,scusatemi per l' informazione sbagliata.
usando lo stesso sistema operativo,basta includere il file .oggetto insieme al .exe?

MItaly
09-12-2010, 16:54
Come detto, dipende.

Se la libreria stata compilata per il linking statico, il file .lib contiene tutta la libreria compilata, e se si linka il proprio programma con tale file la libreria viene inglobata nell'exe.
Se invece la libreria stata compilata per il linking dinamico, il file .lib semplicemente una libreria di importazione, per cui non contiene le funzioni vere e proprie, ma degli stub che rimandano alla dll generata assieme al .lib. In tal caso, perch l'eseguibile possa funzionare, assieme ad esso ci deve essere la dll relativa.

Esistono poi situazioni pi complicate (dll COM, late binding, assembly .NET, ...) ma lasciamo stare.

Loading