पुराना सवाल है, लेकिन फिर भी अप-टू-डेट जवाब के लायक है। आज यह करना सामान्य है कि Qt क्रिएटर क्या करता है जब शैडो बिल्ड का उपयोग किया जाता है (वे एक नया प्रोजेक्ट खोलते समय डिफ़ॉल्ट रूप से सक्षम होते हैं)।
प्रत्येक अलग बिल्ड लक्ष्य और प्रकार के लिए, दाईं 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
और अनुचित बात यह है, qmakeनिर्माण निर्देशिका में चलाया जाता है:
cd build-mylib-XXXX
/path/to/right/qmake ../mylib/mylib.pro CONFIG+=buildtype ...
फिर यह निर्माण निर्देशिका में makefiles उत्पन्न करता है, और फिर make इसके तहत फाइलें भी उत्पन्न करेगा। अलग-अलग संस्करणों के मिश्रित होने का कोई खतरा नहीं है, जब तक कि क्यूमेक को स्रोत निर्देशिका में कभी नहीं चलाया जाता है (यदि यह है, तो इसे अच्छी तरह से साफ करें!)।
और जब ऐसा किया जाता है, तो .proवर्तमान में स्वीकृत उत्तर की फ़ाइल और भी सरल है:
HEADERS += src/dialogs.h
SOURCES += src/main.cpp \
src/dialogs.cpp