C++ 在qmake中包含其他项目文件
我喜欢将Qt项目文件包含到另一个Qt项目中。 长话短说,我有一个生产项目和一个测试项目。它们彼此独立,以保持生产代码的整洁 我尝试过用通配符添加标题和源代码,但它不是递归的C++ 在qmake中包含其他项目文件,c++,qt,qmake,C++,Qt,Qmake,我喜欢将Qt项目文件包含到另一个Qt项目中。 长话短说,我有一个生产项目和一个测试项目。它们彼此独立,以保持生产代码的整洁 我尝试过用通配符添加标题和源代码,但它不是递归的 SOURCES += path\to\production\*.cpp 之后,我编写了一个qmake逻辑来过滤文件 QT += core QT -= gui TARGET = qt_test CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES =
SOURCES += path\to\production\*.cpp
之后,我编写了一个qmake逻辑来过滤文件
QT += core
QT -= gui
TARGET = qt_test
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES = main.cpp
message("Fetching production code")
win32:PRODUCION_FILES = $$system(dir path\to\production /s /b)
for(a, PRODUCION_FILES) {
IS_HEADER = $$find( a, .h$ )
count( IS_HEADER, 1 ) {
HEADERS += $$a
}
IS_CPP = $$find( a, .cpp$ )
count( IS_CPP, 1 ) {
SOURCES += $${a}
}
IS_FORM = $$find( a, .ui$ )
count( IS_FORM, 1 ) {
FORMS += $${a}
}
}
message("Production code fetched!")
message(Headers: $$HEADERS)
message(Sources: $$SOURCES)
message(Forms: $$FORMS)
编译.pro文件时,消息看起来很好:
Project MESSAGE: Fetching production code
Project MESSAGE: Production code fetched!
Project MESSAGE: Headers: path\to\production\mainwindow.h
Project MESSAGE: Sources: main.cpp path\to\production\main.cpp path\to\production\mainwindow.cpp
Project MESSAGE: Forms: path\to\production\mainwindow.ui
但不知何故,当我在QtCreator中查看Projects选项卡时,我会看到各种各样的文件,例如在Headers部分(比如cpp和ui,甚至是pro)
我错过了什么
我在QtCreator 3.5中的Win7系统上使用使用mingw4.9.2 64位编译的Qt 5.4.1
我感谢你的建议和帮助
谢谢,
spiralfuset添加头文件和其他文件的方式不同,即
头文件+=$$a
和源文件+=$${a}
。这是故意的吗?没有,但没有区别“$$VAR=>QMake运行时QMake变量的值$${VAR}=>QMake运行时QMake变量的值(相同但封闭以与周围文本分开)$(VAR)=>运行Makefile(非QMake)时环境变量的内容$$(VAR)=>运行qmake(而不是Makefile)时环境变量的内容”(从)您始终可以创建另一个包含所有公共内容的文件,并包含该文件。是的,但我不想手动添加任何内容。当我创建一个新类或文件时,它会自动添加到production.pro文件中。我不想手动添加到另一个文件。添加头文件和其他文件的方式不同,即,HEADERS+=$$a
和SOURCES+=$${a}
。这是故意的吗?没有,但没有区别“$$VAR=>QMake运行时QMake变量的值$${VAR}=>QMake运行时QMake变量的值(相同但封闭以与周围文本分开)$(VAR)=>运行Makefile(非QMake)时环境变量的内容$$(VAR)=>运行qmake(而不是Makefile)时环境变量的内容”(从)您始终可以创建另一个包含所有公共内容的文件,并包含该文件。是的,但我不想手动添加任何内容。当我创建一个新类或文件时,它会自动添加到production.pro文件中。我不想手动添加到另一个文件中。