2009-04-23 5 views

Répondre

15

Il est laid parce que vous devez donner le nom exact du fichier de bibliothèque, mais cela devrait fonctionner:

TARGETDEPS + = libtruc.a

+0

Super! Juste ce dont j'avais besoin! –

+1

Utilisez plutôt PRE_TARGETDEPS. –

+0

pourquoi? Qu'est-ce qui ne va pas avec TARGETDEPS? – paulm

0

sûrement cela ne peut pas être possible, vous parlez d'utiliser qmake pour faire une recherche de dépendance inverse? Alors qu'est-ce que vous voulez, c'est pour construire l'application B (et toute autre application dépendante de la bibliothèque A) après avoir fait un changement à la bibliothèque A?

c'est un peu comme dire recompiler toutes les applications de base visuelle si vbrun300.dll est mis à jour?

1

qmake ne fournit pas cette capacité.

Au lieu de cela, mettre votre application et lib dans les sous-répertoires, puis créer un Makefile dans leur répertoire parent qui ressemble à ceci:

all: FRC 
    cd Somelib && qmake && $(MAKE) 
    cd SomeApp && qmake && $(MAKE) 

FRC: 

Ensuite, toujours exécuter make de ce répertoire.

+1

Je me sers de qtcreator. J'espérais donc une solution dans un fichier .pro. –

2

En réponse au commentaire de Zahir, il est peut-être utile de rappeler que la mention de cette dépendance dans les fichiers qmake est inutile si vous utilisez des DLL, mais est essentiel si votre exe dépend d'une bibliothèque statique.

1

J'utilisé:

POST_TARGETDEPS += c:/open-en/lib/win32mingw/libosal_based.a 

Il fonctionne, mais est maladroit, car il est nécessaire de spécifier le chemin complet à la bibliothèque, qui est différent pour chaque système d'exploitation/compilateur.

Questions connexes