Pregunta anterior, pero todavía vale la pena una respuesta actualizada. Hoy es común hacer lo que hace Qt Creator cuando se usan compilaciones de sombreados (están habilitadas por defecto al abrir un nuevo proyecto).
Para cada destino y tipo de compilación diferente, se ejecuta el derecho qmake
con los argumentos correctos en un directorio de compilación diferente. Entonces eso acaba de construirse con simple make
.
Por lo tanto, la estructura de directorios imaginarios podría verse así.
/
|_/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
Y lo más improtante es, un qmake
se ejecuta en el directorio de construcción:
cd build-mylib-XXXX
/path/to/right/qmake ../mylib/mylib.pro CONFIG+=buildtype ...
Entonces se genera archivos make en el directorio de construcción, y luego make
generará los archivos bajo él también. No hay riesgo de que se mezclen versiones diferentes, siempre y cuando qmake nunca se ejecute en el directorio de origen (si es así, mejor ¡límpielo bien!).
Y cuando se hace así, el archivo .pro
de la respuesta aceptada actualmente es aún más simple:
HEADERS += src/dialogs.h
SOURCES += src/main.cpp \
src/dialogs.cpp
La forma en que Qt trata las versiones de depuración y liberación modificadas internamente a lo largo del tiempo. Así que descubrimos que los switches de trabajo anteriores entre depuración y liberación se rompieron en versiones posteriores. Vea mi solución que funciona en todas las plataformas y en todas las versiones de Qt hasta ahora. http://stackoverflow.com/questions/32046181/how-to-detect-qt-creators-target-debug-release-visual-studio/32048654#32048654 – adlag