2013-03-27 50 views
1

重組我的源文件到子目錄並將輸出像調試資源文件彙編(RC.EXE)在MSVC2010快遞和Qt 4.8(Qt Creator的2.4.1)

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 

未編入相應的res文件,如jom.exe迅速恢復

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 SDK \ Windows \ v6.0A \ bin \ RC.exe/r projectname.rc」並將生成的.res文件複製到Makefile中指定的文件夾中。在LIBS和RES_FILE中進行調試,並在其中一個第一個構建規則中正常工作。

所以問題是,爲什麼不再創建該文件(它可以在項目目錄中使用所有源文件以及默認的「release」和「debug」dirs)的舊項目中工作。

將調試選項添加到Qt Creator的項目>構建qmake(-Wall)和jom(VERBOSE = 2)的設置不會產生更多關於錯誤的信息。

Makefile.Debug具有.res文件的目標,其中源文件沒有絕對路徑,但即使完成路徑,它也不起作用。

如何從jom獲得更多調試輸出以查看rc.exe是否被調用?

這裏是輸出時失敗:

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進行編譯。

+0

qmake doc:http:// qt-project.org/doc/qt-4.8/qmake-running.html – handle 2013-03-27 18:18:37

回答

1

可能的原因:重新定義build目錄顯然引起了工具的使用中包含空格,導致程序調用失敗的絕對路徑(但rc.exe's`?)

解決方案:沒有關於正確調試工具鏈(jom和qmake)輸出的更多信息,但要確保路徑中沒有空格解決了問題:可執行文件再次嵌入其資源信息。