PDA

View Full Version : compilare staticamente


r3nzo
08-09-2003, 20:25
come da soggetto, qualcuno sa come si fa a compilare staticamente un software ?
dal configure non c'e' scritto nulla..
ciau

VICIUS
08-09-2003, 20:30
di solito dovrebbe bastare passare il parametro --disable-shared oppure --enable-static-link.

ciao ;)

r3nzo
08-09-2003, 21:05
uhmm non funza, inoltre nell'help del configure non si parla di queste opzioni...
altri suggerimenti e/o linkz ?

mjordan
09-09-2003, 01:39
Originariamente inviato da r3nzo
uhmm non funza, inoltre nell'help del configure non si parla di queste opzioni...
altri suggerimenti e/o linkz ?

Una volta fatto il configure, e quindi generati i Makefile, edita a mano il Makefile che si trova nella directory principale dei sorgenti (non quello nella topdir del progetto).

Nella definizione di costante CFLAGS aggiungi il flag --static.
Nella definizione di costante LDFLAGS aggiungi il flag
--mode=static.

Ciao.

P.S.:
Per poterlo fare comunque devi saperti districare con i Makefiles...
Difatti queste costanti potrebbero essere ridefinite altrove nel Makefile, poichè sono Makefiles generati e non scritti a mano. Quindi è un lavoraccio perchè se il pacchetto che devi ricompilare staticamente è grosso, devi vedere gli altri Makefiles referenziati da quello principale per controllare che non ridefiniscono le costanti che ti ho citato.

mjordan
09-09-2003, 01:43
Ultima cosa.
Potrebbe essere ancora + difficile se il pacchetto definisce librerie proprie a cui ci si linka dinamicamente di default (e succede molto spesso). Quindi dovresti avere anche una conoscenza di come opera libtool per assolvere allo scopo.

Alternativamente puoi modificare la generazione dello script configure operando sulfile configure.am. Ma questo a sua volta, richiede una buona conoscenza della sintassi Automake e nei casi + sofisticati una buona conoscenza della scrittura di script M4.

In sostanza, lascia perdere. ;)

r3nzo
09-09-2003, 04:45
compilare me lo compila senza problema, soltato che e' sempre linkato dinamicamente..

mjordan
09-09-2003, 15:51
Originariamente inviato da r3nzo
compilare me lo compila senza problema, soltato che e' sempre linkato dinamicamente..

Hai letto tutto quello che ti ho scritto o ho parlato al muro?

r3nzo
09-09-2003, 16:41
si, ossia di lasciar perdere ?
e vabbe' lascio perdere grazie..

cogiac
09-09-2003, 18:20
Domanda da ignorante: cosa cambia staticamente o dinamicamente?
anche una cosa sintetica va bene :)

r3nzo
09-09-2003, 20:26
semplicemente devo mettere un soft su una macchina su cui non posso installare nulla e ovviamente mancano le lib di cui ho bisogno.

r3nzo
09-09-2003, 20:30
dimenticav, ho scritto al developper del prog e mi ha risposto:

"you cannot statically link GTK cuz they suck and shit."

mjordan
09-09-2003, 20:34
Originariamente inviato da r3nzo
dimenticav, ho scritto al developper del prog e mi ha risposto:

"you cannot statically link GTK cuz they suck and shit."

Perchè non puoi farlo di default nel configure ... Ma modificando la roba come ti ho detto si può fare ...

mjordan
09-09-2003, 20:35
A proposito ... Che programma è???

r3nzo
09-09-2003, 20:54
il successore di lmule ossia xmule..
devo metterlo su una macchina su cui gira knoppix.. a questo punto mi conviene prendere un iso knoppix e metterci dentro le librerie e masterizzarla..

mjordan
09-09-2003, 21:01
Originariamente inviato da r3nzo
il successore di lmule ossia xmule..
devo metterlo su una macchina su cui gira knoppix.. a questo punto mi conviene prendere un iso knoppix e metterci dentro le librerie e masterizzarla..

Seee allora dovresti compilarti staticamente pure le GTK+ ....
Lascia perdere :D Bad Idea. :D

mjordan
09-09-2003, 21:02
Originariamente inviato da cogiac
Domanda da ignorante: cosa cambia staticamente o dinamicamente?
anche una cosa sintetica va bene :)

Le librerie anzichè essere caricate a runtime con la rilocazione dinamica vengono eseguite hardcoded nel binario.

r3nzo
09-09-2003, 21:31
Originariamente inviato da mjordan
Seee allora dovresti compilarti staticamente pure le GTK+ ....
Lascia perdere :D Bad Idea. :D

no che centra le gtk su knoppiz ci sono.. io intendevo dire..
compilo il soft dinamicamente poi le lib che mancano su knoppix tipo wx-gtk le aggiungo..

mjordan
09-09-2003, 21:33
Hai una mente tribolatissima ... :D
Non puoi mettere le librerie e POI ricompilare il programma?

r3nzo
09-09-2003, 21:49
no, perche' avrei da mettere anche le dev e poi che casino se manca qualcosa devo rifare l'iso..
comunque ho risolto perche' ho visto proprio ora che knoppix ha tutte le lib necessarie.. davo per scontato che knoppix non avesse le wx-gtk e invece le ha.. a questo punto basta solo portare il binario e i vari file di conf sulla macchina con knoppix..
speriamo funzi..
comunque hai ragione ho una mente tribolatissima... non cera bisogno di nessuna compilazione statica ma chi se l'immaginava che knoppix aveva tutto ?
anche se poi non è detto perche' mi pare che questo xmule abbia delle wx-gtk modificate.. boh..