Pregunta antigua, pero aún así vale la pena una respuesta actualizada. Hoy en día es común hacer lo que hace Qt Creator cuando se utilizan compilaciones de sombra (están habilitadas de forma predeterminada al abrir un nuevo proyecto).
Para cada destino y tipo de compilación diferente, el derecho qmake
se ejecuta con los argumentos correctos en un directorio de compilación diferente. Entonces eso solo se construye con simple make
.
Entonces, la estructura de directorio imaginaria 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 importante es que qmake
se ejecuta a en el directorio de compilación:
cd build-mylib-XXXX
/path/to/right/qmake ../mylib/mylib.pro CONFIG+=buildtype ...
Luego genera archivos MAKE en el directorio de compilación, y luego make
genera archivos también generará archivos debajo de él. No hay riesgo de que se mezclen diferentes versiones, 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 .pro
archivo de la respuesta actualmente aceptada es aún más simple:
HEADERS += src/dialogs.h
SOURCES += src/main.cpp \
src/dialogs.cpp