gpt4 book ai didi

c++ - Qmake 和 Make 使用单独的文件夹作为源和标题

转载 作者:行者123 更新时间:2023-11-30 04:36:48 25 4
gpt4 key购买 nike

我快被这个愚蠢的问题搞疯了。

我有一棵这样的树:

src|--- sources        |--- one.cpp        |--- two.cpp        |--- sources.pro|--- headers        |--- one.h        |--- two.hpp        |--- headers.pro|--- src.pro

我尽了一切努力让它在两个文件夹中都能看到,但不知何故我无法让它工作。我对 QMake 了解不多,但我认为它很容易。我错了。

所以实际上我最终以这种方式获得了 src.pro 文件:


QT += dbus

CONFIG += warn_on
DEFINES = QT_FATAL_WARNINGS QT_NO_DEBUG_OUTPUT

devel {
DEFINES -= QT_NO_DEBUG_OUTPUT
}

OBJECTS_DIR += build
MOC_DIR += build

TARGET = example

[...]

TEMPLATE = subdirs
SUBDIRS = sources \
headers

[...]

还有这样的 sources.pro 和 headers.pro:

sources.pro


SOURCES = one.cpp \
two.cpp

headers.pro


HEADERS = one.h \
two.hpp

当然(不是)问题是它仍然没有看到所有的东西。我也看了文档,但我发誓我不明白 lol

最佳答案

自从我不得不使用 qmake 以来已经有一段时间了(CMake 万岁!),但你不能只在你的 .pro 中设置 INCLUDEPATH 变量吗> 文件,即做类似的事情:

INCLUDEPATH += ./sources
INCLUDEPATH += ./headers
INCLUDEPATH += ../utils/include
# (etc, etc.)

然后只需将 SOURCES var 中的条目指向 sources 文件夹,如下所示:

SOURCES = sources/one.cpp \
sources/two.cpp

我不清楚您为什么要使用 TEMPLATE = subdirs。在您的情况下似乎没有必要。难道您不能只使用 TEMPLATE = app(或 TEMPLATE = lib)并完成它吗?像这样:

QT += dbus
TEMPLATE = app
TARGET = example

INCLUDEPATH += ./sources

SOURCES += sources/one.cpp \
sources/two.cpp

关于c++ - Qmake 和 Make 使用单独的文件夹作为源和标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4300330/

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