我创建了一个项目,我希望在不同的平台上为我的项目添加不同的源文件。为此,我使用了conditions
:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitled16
TEMPLATE = app
MY_WIN_SOURCES = \
file1.cpp \
file2.cpp
MY_WIN_HEADERS = \
file1.h \
file2.h
MY_LINUX_SOURCES = \
file1.cpp \
file3.cpp
MY_LINUX_HEADERS = \
file1.h \
file3.h
FORMS += mainwindow.ui
win32 {
SOURCES = $$MY_WIN_SOURCES
HEADERS = $$MY_WIN_HEADERS
message("Windows...")
} else {
SOURCES = $$MY_LINUX_SOURCES
HEADERS = $$MY_LINUX_HEADERS
message("Not Windows...")
}
但是当我保存*.pro
文件时,Windows
上的项目树看起来像这样:
这是错误的,因为在Windows上我不应该有file3.h
和file3.cpp
个文件:
此外,file3.h
和file3.cpp
也已编译,不应编译。此外,保存*.pro
文件后显示的唯一消息是Windows...
谁能告诉我我做错了什么?
答案 0 :(得分:3)
这实际上是QtCreator的功能。它会显示所有包含的文件,无论条件如何,但它应该正确编译。
您可以阅读开发人员列表以获取更多信息:http://lists.qt-project.org/pipermail/qt-creator/2012-March/000419.html
我之前的讨论中的理解是,这是故意的。 理论上,你有兴趣修改源文件 您的项目,无论您选择的构建配置如何 那一刻。
/ s / Adam