gpt4 book ai didi

Qt - 在带有目录的 .pro-File 中使用星号 (*)

转载 作者:行者123 更新时间:2023-12-04 09:41:03 25 4
gpt4 key购买 nike

我有一个 .pro 文件,它看起来像:

SOURCES += myfolder/source1.cpp \
myfolder/source2.cpp
HEADERS += myfolder/header1.h\
myfolder/header2.h
FORMS += myfolder/form1.ui\
myfolder/form2.ui

一切都很好。但是,如果我尝试使用星号包含所有文件,即:
SOURCES  += myfolder/*.cpp
HEADERS += myfolder/*.h
FORMS += myfolder/*.ui

qmake 抛出文件未找到错误:
WARNING: Failure to find: myfolder\*.cpp
[...]
:-1: error: No rule to make target `myfolder/*.cpp', needed by `release/source1.o'. Stop.

在这两种情况下,Qt-Creator 都可以找到文件。

有没有办法使用星号?手动输入文件很烦人。

谢谢!

[编辑:Qt 4.8.4、Windows 7、Qt-Creator 2.6.1。请忘记这个想法,这是不需要的。]

[编辑:找到解决方案: http://qt-project.org/forums/viewthread/1127 .还是很感谢你!]

最佳答案

起初,使用星号是不好的做法 - 尽管 qmake 允许它,但 QtCreator 无法在添加新文件、重命名文件或删除文件时正确编辑此类 *.pro。因此,尝试使用“新文件”或“添加现有文件”对话框添加新文件。

QMake 具有 for 循环和函数 $$files(directory_path: String)。还将文件分别附加到 SOURCES 或 HEADERS 变量。

简短示例,将所有文件(但不包括目录)添加到变量 FILES(不影响构建或项目树):

files = $$files($$PWD/src)
win32:files ~= s|\\\\|/|g
for(file, files):!exists($$file/*):FILES += $$file

如果要检查文件是否为 *.cpp,请尝试使用 contains($$file, ".cpp")。
files = $$files($$PWD/src)
win32:files ~= s|\\\\|/|g
for(file, files):!exists($$file/*):contains($$file, ".cpp"):SOURCES += $$file

关于Qt - 在带有目录的 .pro-File 中使用星号 (*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16409756/

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