Objektdateien verbinden (GCC)
-
Hallo,
mit dem GCC erstelle ich (unter Linux) aus mehreren *.cpp Dateien entsprechende Objektdateien (.o). Diese würde ich gerne ungelinkt in eine einzige Objektdatei zusammenpacken. Ist das möglich?
Vielen Dank im Voraus :),
Phobos
-
moin meister ...
sowas ist mir nicht bekannt
mfg
RB
-
Link die doch zu einer statische .lib. Das kommt (fast) aufs selbe raus.
-
und das geht so:
ar rc libfoo.a file1.o file2.o file3.o ...
-
Danke für den Tipp, ich habe jetzt eine libfoo.a. Wie kann ich diese Lib nun von einem anderen Projekt aus einbinden? Mit -llibfoo.a?
-
entweder einfach auf der Kommandozeile mit angeben:
gcc -o blah blub.o blab.o libfoo.a
oder, wenn sie im Library-Pfad liegt:
gcc -o blah blub.o blab.o -lfoo
(-l hängt von selbst lib und .a an)
-
Vielen Dank, es funktioniert perfekt.
-
Eine letzte Frage noch
Wie lässt sich das ganze in eine makefile packen? Ich hab es so versucht:
default: obj lib
obj: bla1.o bla2.o bla3.o
lib: ar rc bla1.o bla2.o bla3.obla1.o - bla3.o sind natürlich auch noch definiert und es funktioniert auch. Die makefile denkt jetzt aber, dass ar eine Abhängigkeit von lib ist.
-
Hallo Phobos,
ich bin zwar absoluter Neuling, aber ich glaube, daß Du das folgendermaßen eintragen mußt:
default: obj lib obj: bla1.o bla2.o bla3.o lib: bla1.o bla2.o bla3.o ar rc bla1.o bla2.o bla3.o
Also zuerst die Abhängigkeiten und in der 2. Zeile ( mit TAB eingerückt ) den Befehl.
Gruß
ComputerFee