Toon posts:

[ld] Symbolen uit library in dynamic symbol table stoppen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een Executable.x die statisch gelinkt is met een libStatic.a. Deze Executable.x linkt op runtime dynamisch een libDynamic.so in.

libDynamic.so heeft symbolen nodig uit Executable.x. Om ervoor te zorgen dat alle symbolen van Executable.x in de dynamic symbol table terecht komen is er gelinkt met de optie -export-dynamic.

Het probleem is nu dat alle symbolen uit Executable.o wel in de dynamic symbol table staan, maar dat ongebruikte symbolen uit libStatic.a er niet in komen, met als gevolg dat libDynamic.so ze op runtime niet kan vinden.

Is er een manier om ongebruikte symbolen uit libStatic.a in de dynamic symbol table te krijgen?
(Btw, ik weet dat ik van libStatic een shared library kan maken, maar dat wil ik liever niet)

Verwijderd

Ongebruikte objects/symbols in een static library worden door de linker gestript tijdens het produceren van de executable. Je kunt de linker dwingen alle objects in een archive te linken door de --whole-archive optie er voor te plaatsen, of specifieke symbols/objects forcen met --undefined=<symbol>

[ Voor 3% gewijzigd door Verwijderd op 30-12-2004 14:36 ]


Verwijderd

Topicstarter
Thanks!
De --whole-archive optie loste het probleem op.