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