我创建了一个项目,其中希望将不同的源文件添加到针对不同平台的项目中。为此,我使用了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...
谁能告诉我我在做什么错?
最佳答案
这实际上是QtCreator的功能。它会向您显示所有包含的文件,而不管条件如何,但是它应该可以正确编译。
您可以阅读开发者列表以获取更多信息:http://lists.qt-project.org/pipermail/qt-creator/2012-March/000419.html
关于c++ - QMake条件不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30075868/