保留構建中的源目錄結構(與源選項並行的未記錄的物件)

如果你希望通過將原始檔儲存在不同的子目錄中來組織專案,你應該知道在構建期間, qmake 不會保留此目錄結構,並且它會將所有“.o”檔案保留在單個構建目錄中。如果你在不同的目錄中存在衝突的檔名,如下所示,則可能會出現問題。

src/file1.cpp
src/plugin/file1.cpp

現在 qmake 將決定在構建目錄中建立兩個“file1.o”檔案,導致其中一個檔案被另一個檔案覆蓋。buld 會失敗。為防止這種情況,你可以將 CONFIG += object_parallel_to_source 配置選項新增到 pro 檔案中。這將告訴 qmake 生成儲存源目錄結構的構建檔案。這樣,你的構建目錄將反映源目錄結構,並且將在單獨的子目錄中建立目標檔案。

src/file1.o
src/plugin/file1.o

完整的例子。

QT += core
TARGET = myapp
TEMPLATE = app

CONFIG += object_parallel_to_source

SOURCES += src/file1.cpp \
           src/plugin/file1.cpp

HEADERS  += src/plugin/file1.h

請注意,object_parallel_to_source CONFIG 選項未正式記錄