2017-02-08 1 views
3

J'ai un projet qui utilise certaines bibliothèques que j'ai écrites. Sur mon projet principal, je relie ces bibliothèques en utilisantEst-il possible d'utiliser à la fois des bibliothèques statiques et dynamiques dans Qt

LIBS += -LPATH_TO_LIBS -lsomename 

de sorte que les choses habituelles. Si je construis toutes mes libs en tant que lib dynamique, cela fonctionne bien. Si je construis toutes mes libs comme statiques j'ai des erreurs de linker parce que pour une raison quelconque, g++ priorise les libs dynamiques je suppose. Mais si j'ajoute -Wl,-Bstatic à mes options d'éditeur de liens, cela fonctionne bien aussi. Voici mon problème:

Je veux utiliser des versions statiques de certaines bibliothèques et des versions dynamiques des autres. Comment puis-je atteindre cet objectif?

Répondre

0

Il ne devrait pas y avoir de problème lors de l'utilisation de bibliothèques statiques et dynamiques. La ligne de commande suivante doit fonctionner:

g++ object1.o object2.o -lmydynamiclibrary -lmystaticlibrary -o binary 

Notez que les bibliothèques statiques doivent être mis après les fichiers objets et des bibliothèques dynamiques dans la ligne de commande, car les fichiers d'objets et libs importer/symboles d'exportation sont analysés et libs statiques l'éditeur de liens ne conserve que les symboles exportés connus pour être nécessaires à ce moment.

si vous voulez une réponse plus détaillée, vous devriez nous dire quelle est la ligne de commande exécutée pour l'éditeur de liens et quelle est l'erreur que vous obtenez