保留构建中的源目录结构(与源选项并行的未记录的对象)
如果你希望通过将源文件保存在不同的子目录中来组织项目,你应该知道在构建期间, 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
选项未正式记录。