我怎样才能消除这个警告
从我对 qmake 代码的阅读来看,您似乎可以:
-
either让 qmake 忽略任何不存在的文件名 - 在这种情况下,您的后续步骤将不会构建它们
-
or让它写下这些警告
我认为这两者都不能让你满意。
这是我的推理......我正在寻找文字Failure to find
在 Qt 发行版中,我必须提供:qt4.8.1。
中出现了3次qmake/generators/makefile.cpp
。两个代码块如下所示:
QStringList
MakefileGenerator::findFilesInVPATH(QStringList l, uchar flags, const QString &vpath_var)
{
....
debug_msg(1, "%s:%d Failure to find %s in vpath (%s)",
__FILE__, __LINE__,
val.toLatin1().constData(), vpath.join("::").toLatin1().constData());
if(flags & VPATH_RemoveMissingFiles)
remove_file = true;
else if(flags & VPATH_WarnMissingFiles)
warn_msg(WarnLogic, "Failure to find: %s", val.toLatin1().constData());
....
else if(flags & VPATH_WarnMissingFiles)
warn_msg(WarnLogic, "Failure to find: %s", val.toLatin1().constData());
这是通过以下方式调用的:
l = findFilesInVPATH(l, (comp.flags & Compiler::CompilerRemoveNoExist) ?
VPATH_RemoveMissingFiles : VPATH_WarnMissingFiles, "VPATH_" + comp.variable_in);
因此传入第一个块的 flags 参数将是RemoveMissingFiles
or WarnMissingFiles
, 根据comp.flags & Compiler::CompilerRemoveNoExist
.
或者,有没有更好的方法使用 qmake 生成中间文件?
我不确定它更好 - 也就是说它肯定很复杂 - 但这就是我工作的地方所做的......
在 .pro 文件中,完成了系统调用:
- 生成所需的文件,
- 然后将他们的名字写到标准输出。
以下是 .pro 中的示例,展示了如何调用它:
SOURCES += $$system( python my_script_name.py )
如果您愿意,您当然可以将参数传递给 python 脚本
注意事项/限制:
- 这意味着只要您运行,python 脚本就会运行
qmake
,但不是在个人期间make
祈求
- 每次调用 python 确实会减慢我们的 qmake 步骤 - 花费的时间大约是在不启动 python 的情况下运行 qmake 的两倍 - 但您始终可以使用不同的脚本语言
这将解决你的问题,因为当 qmake 处理SOURCES
值,文件已由脚本创建。