この警告を鎮めるにはどうすればよいですか
qmakeコードを読んだところ、次のことができるようです:
- 存在しないファイル名をqmakeに無視させるか、その場合、後のステップでビルドされません
- または、これらの警告を書き込むようにします
どちらもあなたにとって満足できるものではないと思います。
これが私の推論です....私は、Failure to find
私が手にしなければならなかったQtディストリビューションのテキストを探しました:qt4.8.1。
に3回登場qmake/generators/makefile.cpp
。2 つのコード ブロックは次のようになります。
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
または のいずれかになります。WarnMissingFiles
comp.flags & Compiler::CompilerRemoveNoExist
または、qmake を使用して中間ファイルを生成するより良い方法はありますか?
それが良いかどうかはわかりません-つまり、確かに複雑です-しかし、これは私が働いている場所で行われていることです...
.pro ファイルでは、次のようなシステム コールが実行されます。
- 必要なファイルを生成し、
- そしてそれらの名前を stdout に書き出します。
.pro の例を次に示します。これは、どのように呼び出されるかを示しています。
SOURCES += $$system( python my_script_name.py )
もちろん、必要に応じて引数を python スクリプトに渡すこともできます。
注意事項/制限事項:
- これは、 を実行するたびに python スクリプトが実行されることを意味しますが
qmake
、個々のmake
呼び出し中は実行されません。
- Python を呼び出すたびに、qmake のステップが本当に遅くなります。Python を起動せずに qmake を実行する場合の約 2 倍の時間がかかりますが、別のスクリプト言語をいつでも使用できます。
これにより、qmake がSOURCES
値を処理するまでに、スクリプトによってファイルが作成されているという問題が解決されます。