在我们的项目中,如果定义了 MACRO,我们会添加一些源文件和头文件。我们这样做,在 .pro 文件中:
contains(DEFINES, MY_DEF) {
message("Support MY_DEF")
INCLUDEPATH += \
my_include_dir
SOURCES += \
source1.cpp \
source2.cpp
HEADERS += \
my_include_dir/header1.h \
my_include_dir/header2.h
FORMS += \
myform.ui
}
这在构建期间工作正常。如果未定义 MY_DEF,则不会编译文件。MY_DEF 是这样定义的:
DEFINES += MY_DEF
奇怪的是,Qt Creator 总是在项目树中显示文件,而 MY_DEF 是否已定义。如果没有定义,它们不会用于构建,但它们仍然可以显示和编辑,搜索可以扫描它们等等......这是 Qt Creator 的错误吗?
这不是什么大问题,只是有点烦人,因为我们不清楚一个文件是否是项目的一部分。