Sto utilizzando gcc per compilare un programma che devo collegare a una libreria C con nome non standard; è chiamato stuff.a
anziché libstuff.a
.Collegamento di libreria C con nome non standard
Non riesco a modificare il nome del file (problemi di autorizzazione).
Non voglio per includere la libreria completa (vale a dire utilizzando gcc program.c stuff.a -oprogram
)
voglio compilare come gcc program.c -L/path/to/library/ -lstuff -oprogram
ma gcc non troverà la libreria (perché non è chiamato libstuff.a
).
Sto lavorando su una macchina Linux.
Come posso ottenere il collegamento (dinamico) fatto?
EDIT:
tutti voi, e le mie scuse Grazie per una domanda mal formulata.
Io non aveva nemmeno un oggetto condiviso (ho pensato che avrei potuto collegare in modo dinamico in un file .a *), quindi questo confuso molti di voi. Di nuovo, scuse per la mia ignoranza.
Quello che ho finito per fare è creare l'oggetto condiviso in una directory locale, aggiungendo la posizione in cui la mia variabile d'ambiente LD_LIBRARY_PATH, e il collegamento di nuovo.
Funziona come un fascino (da eseguibile da 1,3 M fino a 5,8K).
Grazie ancora.
Fa una versione oggetto condiviso della libreria esistono (stuff.so)? – jschmier
dimenticato di menzionare, sto lavorando su Linux. – Escualo
@jschmier: no, solo la libreria '.a'. – Escualo