我对这个愚蠢的问题很生气。
我有一棵这样的树:
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
当然(不是)问题是它仍然没有看到所有东西。 我也查看了文档,但我发誓,我不明白它,哈哈尔
答案 0 :(得分:2)
我已经有一段时间了,因为我不得不使用qmake(long CMake!),但你不能只在你的INCLUDEPATH
文件中设置.pro
变量,即,做类似的事情:
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