Andreas Pietzowski
2007-05-22 14:14:05 UTC
Hallo,
ich habe ein Projekt das mit einem Makefile zwei statische Bibliotheken
(lib1.a und lib2.a) und ein Binary (myapp) erstellt. lib2 benutzt intern
auch noch Dinge, die in lib1 vorhanden sind.
Die libs werden auch beide schön vom make-Prozess erstellt. Wenn ich
allerdings
gcc -o myapp lib1.a lib2.a main.o
aufrufe, dann kommt die Fehlermeldung, dass er wegen undefined references
nicht linken kann. Diese undefinierten Referenzen sind genau die, die lib2
aus lib1 benötigt und im Prinzip auch in lib1 vorhanden sind.
Wennich nun das entsprechende Modul aus lib1.a entpacke und
gcc -o myapp modulauslib1.o lib2.a main.o
aufrufe, dann wird das Binary perfekt erstellt.
An was kann das liegen? Es sollte doch normal egal sein, ob sich ein
Object-File in einer statischen Bibliothek befindet oder als eigenes
Object-File vorhanden ist, oder?
Danke für Hilfe
Andreas
ich habe ein Projekt das mit einem Makefile zwei statische Bibliotheken
(lib1.a und lib2.a) und ein Binary (myapp) erstellt. lib2 benutzt intern
auch noch Dinge, die in lib1 vorhanden sind.
Die libs werden auch beide schön vom make-Prozess erstellt. Wenn ich
allerdings
gcc -o myapp lib1.a lib2.a main.o
aufrufe, dann kommt die Fehlermeldung, dass er wegen undefined references
nicht linken kann. Diese undefinierten Referenzen sind genau die, die lib2
aus lib1 benötigt und im Prinzip auch in lib1 vorhanden sind.
Wennich nun das entsprechende Modul aus lib1.a entpacke und
gcc -o myapp modulauslib1.o lib2.a main.o
aufrufe, dann wird das Binary perfekt erstellt.
An was kann das liegen? Es sollte doch normal egal sein, ob sich ein
Object-File in einer statischen Bibliothek befindet oder als eigenes
Object-File vorhanden ist, oder?
Danke für Hilfe
Andreas