Puis-je mélanger statique et de bibliothèques d'objets lors de la liaison?

J'ai un projet C qui produit dix exécutables, tous de qui je voudrais être liés de manière statique. Le problème, je suis confronté est que l'un de ces exécutables utilise une 3ème partie de la bibliothèque dont seule la commune-version objet est disponible.

Si je passe les -static drapeau à gcc, ld va d'erreur en disant qu'il ne peut pas trouver la bibliothèque en question (je présume qu'il est à la recherche de l' .une version) et que l'exécutable ne sera pas construit. Idéalement, je voudrais être en mesure de dire 'ld' lien statique autant qu'il peut et ne parviennent pas à l'objet partagé bibliothèque si une bibliothèque statique ne peut pas être trouvé.

Dans le interium j'ai essayé quelque chose comme gcc -static -lib1 -lib2 -shared -lib3rdparty foo.c -o foo.exe dans l'espoir que 'ld' permettrait de lier statiquement dans lib1 et lib2 mais seulement un moment de l'exécution de la dépendance sur les lib3rdparty. Malheureusement, cela ne fonctionne pas comme prévu; au lieu de la -shared drapeau a remplacé le -static drapeau et tout ce qui a été compilé que partagés objets.

Est la liaison statique d'un tout-ou-rien, ou est-il une façon pour moi de mélanger et assortir?

InformationsquelleAutor SiegeX | 2010-06-02