Ich verwende gcc, um ein Programm zu kompilieren, das ich mit einer C-Bibliothek mit nicht standardmäßigen Namen verknüpfen muss; Es heißt stuff.a
anstelle von libstuff.a
.Verknüpfung der C-Bibliothek mit einem nicht standardmäßigen Namen
Ich kann den Namen der Datei nicht ändern (Berechtigungsprobleme).
Ich will nicht die vollständige Bibliothek enthalten (das heißt mit gcc program.c stuff.a -oprogram
)
ich als gcc program.c -L/path/to/library/ -lstuff -oprogram
kompilieren wollen aber gcc wird die Bibliothek nicht gefunden (weil es nicht libstuff.a
genannt).
Ich arbeite an einer Linux-Box.
Wie kann ich die (dynamische) Verknüpfung machen?
EDIT:
Vielen Dank an alle, und ich entschuldige mich für eine schlecht formulierte Frage.
Ich hatte nicht einmal ein gemeinsames Objekt (ich dachte, ich könnte dynamisch zu einer * .a Datei verknüpfen), so dass dies viele von Ihnen verwirrt. Nochmals, Entschuldigung für meine Ignoranz.
Was ich getan habe, ist das gemeinsame Objekt in einem lokalen Verzeichnis zu erstellen, den Speicherort an meine Umgebungsvariable LD_LIBRARY_PATH anfügen und erneut verknüpfen.
Es funktioniert wie ein Charme (von 1.3M ausführbar bis 5.8K).
Nochmals vielen Dank.
hat ein gemeinsam genutztes Objekt Version der Bibliothek vorhanden sind (stuff.so)? – jschmier
vergessen zu erwähnen, ich arbeite an Linux. – Escualo
@jschmier: Nein, nur die '.a' Bibliothek. – Escualo