我的Qt项目结构类似于:
目录结构:
|
|--- dir
| |
| | - a.c
| | - a.h
| | - test.pro
|--- dir1
| | - b.c
| | - b.h
test.pro
SOURCES += a.c \
../dir1/*.c
HEADERS += a.h \
../dir1/*.h
当我尝试构建项目时,我收到错误:
:-1: error: No rule to make target `../dir1/*.c'
是否有包含.pro文件之外的源文件?
还可以在Qt Creator左侧的Projects窗格中显示它们吗?
答案 0 :(得分:1)
qmake中的通配符(.pro文件)仅适用于当前项目目录中的文件。对于子文件夹,它不起作用。因此,正确的解决方案是单独添加每个文件。
问题出现在Qt错误跟踪器QTCREATORBUG-8925上。勾选的内容将作为新功能请求或由于多个问题而关闭:
在.pro文件中使用通配符会产生多个问题,例如:添加一个 附加文件不会自动编译它。也不会删除 文件自动将其从Makefile中删除
但是,wiki Undocumented_QMake
上列出了未记录的功能files(glob) - 返回与指定的glob匹配的文件列表 图案。
因此,如果使用globbing模式的上述问题是可以接受的,那么它可以用作
SOURCES += $$files(../dir1/*.c)