2
我正在使用DevIL編寫一個C++ OpenGL項目,並且在嘗試解決如何加載圖像以用作紋理時遇到編譯時錯誤。Devil和C++中的OpenGL
到目前爲止,我有這個
//Declarations
const char* filename = "back.bmp";
ILboolean ilLoadImage(const char *filename);
ILuint image;
ilGenImages(1, &image);
ilBindImage(image);
//Load the image
if (!ilLoadImage(filename))
{
throw runtime_error("Unable to load image" +filename);
}
呈現我的錯誤:error C2110: '+' : cannot add two pointers
如果我改變的filename
的聲明string filename = "back.bmp";
和if語句
if (!ilLoadImage(const_cast<char*>(filename.c_str())))
我得到這個鏈接錯誤error LNK1104: cannot open file 'DevIL.libkernel32.lib'
我確定我已將所有的DevIL文件放在需要的位置,並在Project-> Properties-> Linker-> Input-> Additional Dependencies中添加依賴項。
鏈接錯誤一直持續。我在Microsoft SDKs \ Windows \ 7.0A \ Lib和config.h,config.h.in,devil_cpp_wrapper.h,devil_internal_exports.h,il.h,ilu.h中添加了DevIL.lib,ILU.lib和ILUT.lib ,ilu_region.h,ilut.h和ilut_config.h放在與上面相同的目錄中,而不是\ Lib,位於\ Include \ IL中。我的#包括:,和。我錯過了什麼,或做錯了什麼? –
OddCore
2011-04-16 14:05:05
您應該將您的「其他庫目錄」設置爲您的lib文件的位置,並將以空格分隔的庫添加到「其他依賴項」。如果您向SDK dir添加任何內容,那麼您做錯了。 – Erik 2011-04-16 14:09:40
我做到了。問題仍然存在。顯然,它適用於所有的DevIL庫,不僅僅是DevIL.lib,還有ilut.lib和ilu.lib,因爲我試圖在「附加依賴」中改變它們的順序,它總是最後一個找不到。正如你所說,我也改變了「附加庫文件」,儘管在過去當我將OpenGL庫放入SDK文件夾,然後沒有將它們添加到「附加庫文件」時,它並沒有抱怨。 – OddCore 2011-04-16 14:35:20