Qt Creator 和条件构建

标签 qt qt-creator

在我们的项目中,如果定义了宏,我们添加了一些源文件和头文件。我们在 .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 的错误吗?

这不是一个大问题,只是有点烦人,因为我们不清楚文件是否是项目的一部分。

最佳答案

这甚至是故意的。有一种特殊的“累积”解析模式来收集 .pro 文件中提到的所有文件(本质上与用于收集“可翻译字符串”的文件相同)以在项目树中显示。否则,像“替换项目中的所有文件”这样的事情会根据平台或运行的上下文产生不同的结果。[并且它不是包含的 qmake 的一半,但接近全部......]

关于Qt Creator 和条件构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782060/

相关文章:

qt-creator - QT5 QWebView 链接器错误

qt - 无法启动程序。路径或权限错误?在 Qt 中

c++ - 自动为 Qt 配置套件

c++ - 这是使用 QThread 的正确方法吗?

QTcpSocket 有时不发送数据

c++ - Q共享库中的应用程序

qt - ComboBox Qt Creator - 如何创建事件?

c++ - QtCreator 中的相对路径

c++ - Qt/OpenGL : Am I using PBO correctly ?

python - QObject::connect:无法在 PySide 中对类型 'object' 的参数进行排队