2010-06-08 6 views
0

Salutations à tous! J'utilise gcc sur linux pour créer une bibliothèque partagée. La bibliothèque elle-même n'a pas de code mais des liens vers quelques bibliothèques statiques (archives) également construites en utilisant gcc. J'ai besoin d'exporter les symboles des bibliothèques statiques à travers ma bibliothèque partagée. Ce qui se passe est que la bibliothèque partagée résultante est trop petite et qu'elle ne contient aucun des symboles fournis par les bibliothèques statiques mentionnées ci-dessus. J'ai également essayé avec une carte des symboles exportés mais cela n'a pas aidé du tout. Quelqu'un d'entre vous pourrait-il suggérer une solution?Comment lier des bibliothèques statiques (archives) à une bibliothèque dynamique vide avec gcc4

10x à l'avance

Répondre

3

Vous devez --whole-archive l'option de l'éditeur de liens pour tirer dans toutes les archives statiques:

gcc -shared -o libwhatever.so -Wl,--whole-archive -lstatic -Wl,--no-whole-archive 

Le -Wl est nécessaire parce que --whole-archive est une option de liaison. Pour ce faire, le code dans libstatic.a devra avoir été correctement compilé pour être utilisé dans un objet partagé (c'est-à-dire avec -fpic sur les plateformes qui en ont besoin).

+0

10x, cela a résolu mon pour moi. – user360607

Questions connexes