2017-04-06 1 views
0

bibliothèque recherche pas avoir un fichier .pro dans lequel je relie mes bibliothèques en utilisant:qmake ne chemin

LIBS += -L$${OUTDIR} \ 
     -lA \ 
     -lB \ 
     -lC \ 

J'ai développé trois bibliothèques A, B, C et c'est la quatrième bibliothèque, je suis en train pour construire, appelez D. libD.so doit établir un lien avec les autres. Puisque je mets tout sous un bin directorty, j'ai ajouté -L$${OUTDIR} là de sorte qu'il recherchera le dossier bin pour trouver des bibliothèques. OUTDIR est une variable que je mets égale à bin dir et je suis sûr que c'est le bon répertoire. Je l'imprime comme un message. Mais j'ai l'erreur que libD.so ne trouve pas libB.so. Je suis confus ici, il trouve d'autres A et C, pourquoi il ne peut pas trouver B? Ils sont tous dans le même répertoire et j'ajoute cela au chemin de la bibliothèque en utilisant -L$${OUTDIR}, donc. Quel pourrait être le problème? Par ailleurs, si vous supprimez -L$${OUTDIR} et que vous ajoutez ce répertoire directement à LD_LIBRARY_PATH, à partir de l'onglet QtCreator Projects et des configurations de construction, il trouve toutes les bibliothèques correctement.

Répondre

0

Supprimer \ après -Lc

LIBS += -L$${OUTDIR} \ 
     -lA \ 
     -lB \ 
     -lC 
+0

Malheureusement, cela ne l'a pas résolu. – meguli

+0

@meguli Mais il est même nécessaire de commencer à le résoudre. –

0

Il ne peut pas le trouver, car au moment de la construction où il cherche la bibliothèque, la bibliothèque n'est pas encore construite. Vous devez vous assurer que les bibliothèques sont construites dans l'ordre de leurs dépendances.

+0

Mais les fichiers lib sont construits et sont là. Si j'ajoute manuellement ce répertoire à 'LD_LIBRARY_PATH', tout fonctionne correctement. D'une manière ou d'une autre, qmake ne génère pas de fichier makefile qui ajoute '-LOUTDIR' aux drapeaux du compilateur. En passant, la même approche fonctionne pour mes autres projets. – meguli