Vieille question, mais qui mérite toujours une réponse actualisée. Aujourd'hui, il est courant de faire ce que Qt Creator fait lorsque les shadow builds sont utilisés (ils sont activés par défaut lors de l'ouverture d'un nouveau projet).
Pour chaque cible et type de construction différents, le droit qmake
est exécuté avec les bons arguments dans un répertoire de construction différent. Ensuite, il est juste construit avec de simples make
.
Ainsi, une structure de répertoire imaginaire pourrait ressembler à ceci.
/
|_/build-mylib-qt5-mingw32-debug
|_/build-mylib-qt5-mingw32-release
|_/build-mylib-qt4-msvc2010-debug
|_/build-mylib-qt4-msvc2010-release
|_/build-mylib-qt5-arm-debug
|_/build-mylib-qt5-arm-release
|_/mylib
|_/include
|_/src
|_/resources
Et ce qui est improbable, c'est qu'un qmake
est exécuté dans le répertoire de construction :
cd build-mylib-XXXX
/path/to/right/qmake ../mylib/mylib.pro CONFIG+=buildtype ...
Ensuite, il génère des fichiers makefiles dans le répertoire de construction, et ensuite make
générera également des fichiers sous ce nom. Il n'y a pas de risque de mélange de versions différentes, tant que qmake n'est jamais exécuté dans le répertoire des sources (si c'est le cas, il vaut mieux bien le nettoyer !).
Et quand c'est fait comme ça, le .pro
de la réponse actuellement acceptée est encore plus simple :
HEADERS += src/dialogs.h
SOURCES += src/main.cpp \
src/dialogs.cpp
0 votes
La façon dont Qt traite les builds de débogage et de version a changé au fil du temps. Nous avons donc découvert que les commutations précédentes entre debug et release ne fonctionnaient plus dans les versions ultérieures. Voir ma solution qui fonctionne sur toutes les plateformes et sur toutes les versions de Qt jusqu'à présent. stackoverflow.com/questions/32046181/
2 votes
Puisqu'il s'agit d'une vieille question, il est bon de rappeler qu'il y a de meilleures réponses avec beaucoup moins de votes.