2009-05-13 4 views
0

J'essaie de lier ma bibliothèque xxx à une bibliothèque yyy. Je veux lier statiquement de sorte que je n'ai pas besoin d'emballer yyy avec xxx quand je livre xxx. J'ai deux versions de yyy fournies par un tiers: libyyy.so et libyyyln.a. Donc, ici, je vais créer un lien avec -lyyyln.Liaison statique avec Sunstudio

Je ne reçois aucun message d'erreur lorsque je suis lié. La dépendance sur yyyln n'apparaît pas quand je fais "ldd libxxx.so". Mais "ldd -r libxxx.so" montre que les symboles de yyy ne sont pas résolus. "nm libxxx.so" montre que ces symboles de yyy sont UNDEF.

Qu'est-ce qui me manque alors?

Edit1: Je réussi à obtenir pour travailler éventuellement avec "-l /fullpath/libyyyln.a"

Répondre

0

Je suppose que vous utilisez gcc. Par défaut, gcc utilisera des bibliothèques partagées (.so) si c'est possible, donc vous devez le forcer à lier statiquement avec l'option -static.

Editer: Désolé, je pensais que sunstudio était le nom de la bibliothèque que vous essayez de lier, j'ai oublié que Sun Studio comprend un compilateur. Il doit y avoir une option similaire pour sun studio, cependant.

1

Vous auriez pu poser cette question sur le forum Sun Studio et obtenu des réponses directement à partir de l'équipe du compilateur Sun Studio

Sun Studio Forums (C, C++, Fortran, et outils)

0

j'ai réussi à obtenir pour travailler finalement avec "-l /fullpath/libyyyln.a"

J'ai joué avec -Bstatic et -Bdynamic sans succès. La solution était vraiment aussi simple que ce qui est écrit ci-dessus. J'aurais dû y penser plus tôt.

Questions connexes