我想添加一個資源文件,以在Code :: Blocks中爲我的win32窗體應用程序添加一個圖標。我創建了resource.rc
文件並將其添加到我的項目中,並將我的圖標放在項目的根文件夾(源文件所在的位置),並且我一直收到預處理失敗的錯誤。Code :: Blocks資源預處理錯誤
這是我resource.rc
文件是什麼樣子
#ifndef _resource_rc
#define _resource_rc
MAINICON ICON "icon1.ico"
#endif
我main.cpp
文件只是一個不變的win32窗體應用程序,以及項目本身除了添加resource.rc
文件到項目不變。
構建信息錯誤是
||preprocessing failed.|
||=== Build finished: 1 errors, 0 warnings ===|
並生成日誌是
gcc: Files\: No such file or directory
gcc: \(x86\)\CodeBlocks\MinGW\include: No such file or directory
windres.exe: preprocessing failed.
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings
我有檢查,以確保安裝代碼:: Blocks的地方,它位於\Program Files(x86)\
地方,因爲它似乎gcc正在查看名爲\(x86)\
的文件夾。這可能是問題嗎?
如果我刪除資源文件,應用程序將編譯並正確運行。
感謝您的任何幫助。
編輯:我已經啓用完整的編譯器輸出,這裏是什麼是跑:
windres.exe -i C:\Users\user\Desktop\MENOET~1\resource.rc -J rc -o obj\Debug\resource.res -O coff -I"C:\Program Files (x86)\CodeBlocks\MinGW\include"
gcc: Files\: No such file or directory
gcc: \(x86\)\CodeBlocks\MinGW\include: No such file or directory
windres.exe: preprocessing failed.
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings
我已經注意到的是,MENOET〜1是某種我的項目目錄和縮略名不是它的實際名稱。不知道這與它有什麼關係,我似乎也無法改變它。
edit2:我設法解決它,但我寧可不這樣做。我做的是將MingGW複製到C:\,然後進入設置 - >編譯器和調試器 - >搜索目錄 - >資源編譯器,並將該路徑設置爲C:\ MingGW \ include。這可以緩解所有的錯誤,並且構建成功,但我寧願不必在我的根目錄C:\目錄下有MingGW的副本。有沒有什麼辦法可以解決這個問題,以便它能夠與原始路徑一起工作?我可以想象它只是在文件名中的空格上去了,但我不知道在哪裏找到插入引號的構建變量。
資源編譯器搜索目錄我不禁注意到這一點:'\(86 \)\' - 作爲'\'括號內。我剛剛檢查了「Settings-> Compiler-> Search directories-> Resource compiler」的設置,發現它是空的。雖然'... directories-> Compiler'下的條目是'C:\ Program Files(x86)\ CodeBlocks \ MinGW \ include'。您可以隨時嘗試重新安裝它。我之所以這樣做,是因爲我早已被遺忘的一個原因。 ***編輯:***的意思是說**(1)**沒有包含文件在你的resource.rc中(我希望resource.h,它有一些像'#define MAINICON 100')**( 2)** Checkout ResEdit - www.resedit.net – enhzflep
@enhzflep我會嘗試從代碼塊中刪除搜索目錄,看看會發生什麼,雖然我確實已經運行到現在,儘管不是我想要的。感謝您的建議。 –