ソースファイルをサブディレクトリに再編成し、出力を次のように指示した後
CONFIG( debug, debug|release ) {
DESTDIR = $$PWD/build/debug
} else {
DESTDIR = $$PWD/build/release
}
OBJECTS_DIR = $$DESTDIR/.obj
MOC_DIR = $$DESTDIR/.moc
RCC_DIR = $$DESTDIR/.qrc
UI_DIR = $$DESTDIR/.ui
に含まれているリソースファイルのようです
RC_FILE += res/projectname.rc
jom.exe がすぐに戻るため、対応する .res ファイルにコンパイルされません。
C:\QtSDK\QtCreator\bin\jom.exe -f Makefile.Debug
Error: dependent '"c:\path\to\projectname\build\debug\.obj\projectname.res"' does not exist.
ファイルは実際には存在しません。
「C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\RC.exe /r projectname.rc」を手動で実行し、結果の .res ファイルを LIBS の Makefile.Debug で指定されたフォルダーにコピーし、 RES_FILE であり、最初のビルド ルールの 1 つで問題なく動作します。
問題は、なぜファイルがもう作成されないのかということです (プロジェクト ディレクトリとデフォルトの「リリース」および「デバッグ」ディレクトリにすべてのソース ファイルがある古いプロジェクトで動作します)。
Qt Creator のプロジェクト > qmake (-Wall) および jom (VERBOSE=2) のビルド設定にデバッグ オプションを追加しても、問題の原因に関する詳細情報は得られませんでした。
Makefile.Debug には .res ファイルのターゲットがあり、ソース ファイルには絶対パスがありませんが、パスを完成させても機能しません。
rc.exe が呼び出されているかどうかを確認するために、jom からさらにデバッグ出力を取得するにはどうすればよいですか?
失敗したときの出力は次のとおりです。
18:39:45: The process "c:\qtsdk\desktop\qt\4.8.1\msvc2010\bin\qmake.exe" exited normally.
18:39:45: Starting: "C:\QtSDK\QtCreator\bin\jom.exe" VERBOSE=2
C:\QtSDK\QtCreator\bin\jom.exe -f Makefile.Debug
Error: dependent '"c:\path\to\projectname\build\debug\.obj\projectname.res"' does not exist.
jom 1.0.8 - empower your cores
jom: c:\path\to\projectname\Makefile [debug] Error 2
18:39:46: The process "C:\QtSDK\QtCreator\bin\jom.exe" exited with code 2.
Error while building project projectname (target: Desktop)
When executing build step 'Make'
また、SDK のパスをシステム変数に追加しました。VS C++ 2010 Express を使用してコンパイルしています。