Старе запитання, але все-таки варте актуальної відповіді. Сьогодні прийнято робити те, що робить Qt Creator, коли використовуються тіньові побудови (вони вмикаються за замовчуванням під час відкриття нового проекту).
Для кожної різної цілі і типу збірки право qmake
запускається правильними аргументами в іншому каталозі збірки. Тоді це просто будується з простого make
.
Отже, уявна структура каталогів може виглядати приблизно так.
/
|_/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
І найважливішим є те, що a qmake
запускається в каталозі збірки:
cd build-mylib-XXXX
/path/to/right/qmake ../mylib/mylib.pro CONFIG+=buildtype ...
Тоді він генерує makefiles у каталозі збирання, а потім make
також генерує файли під ним. Немає ризику змішування різних версій, доки qmake ніколи не запускається у вихідному каталозі (якщо він є, краще добре очистіть його!).
І коли це зроблено так, .pro
файл із прийнятої відповіді ще простіше:
HEADERS += src/dialogs.h
SOURCES += src/main.cpp \
src/dialogs.cpp