gpt4 book ai didi

c++ - QMake 条件不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 01:40:13 25 4
gpt4 key购买 nike

我创建了一个项目,我想在其中为不同的平台将不同的源文件添加到我的项目中。为此,我使用了 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 上项目树如下所示:

enter image description here

这是错误的,因为在 Windows 上我不应该有 file3.hfile3.cpp 文件:

此外 file3.hfile3.cpp 也被编译,不应该被编译。此外,保存 *.pro 文件后出现的唯一消息是 Windows...

谁能告诉我我做错了什么?

最佳答案

这其实就是QtCreator的特色。它会向您显示所有包含的文件,无论条件如何,但它应该可以正确编译。

您可以阅读开发人员列表以获取更多信息:http://lists.qt-project.org/pipermail/qt-creator/2012-March/000419.html

My understanding from earlier discussions is that this is intentional. The theory is that you're interested in modifying the source files in your project regardless of the build configuration you have chosen at the moment.

/s/ Adam

关于c++ - QMake 条件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30075868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com