这个问题比较简单,但是经常犯经常被忽略,写个防止自己忘记。
当我们在使用FreeImage库的时候,经常只会在VS的安装目录的Include包含其头文件,bin包含它的dll,lib中包含它的lib文件,这样我们在使用的时候经常都只会在代码中包含它的
头文件
#include <FreeImage.h>
这个时候是因为我们不细心了,所以当我们按下编译的时候会出现一大堆无法解析的外部符号的错误,如下
错误 8 error LNK2019: 无法解析的外部符号 __imp__FreeImage_GetPalette@4,该符号在函数 "struct GLBITMAP * __cdecl FIBitmap2GLBitmap(struct FIBITMAP *)" (?FIBitmap2GLBitmap@@YAPAUGLBITMAP@@PAUFIBITMAP@@@Z) 中被引用 E:\Visual C++程序\其他的小实验\OpenGL实验\OpenGlTest\OpenGlTest\OpenGLText.obj
错误 9 error LNK2019: 无法解析的外部符号 __imp__FreeImage_GetHeight@4,该符号在函数 "struct GLBITMAP * __cdecl FIBitmap2GLBitmap(struct FIBITMAP *)" (?FIBitmap2GLBitmap@@YAPAUGLBITMAP@@PAUFIBITMAP@@@Z) 中被引用 E:\Visual C++程序\其他的小实验\OpenGL实验\OpenGlTest\OpenGlTest\OpenGLText.obj
。。。。。。
这个时候看见这个错误,大部分人都会怀疑自己的FreeImage库是否是配置出现了错误,然后重复的去配置,但是不管怎么配置,还是会出现这个错误,为什么????????
因为FreeImage库的lib文件根本没有被这个工程所关联,这个时候我们需要手动链接这个FreeImage.lib文件,即将下列的代码放在一起就不会出现问题
#include <FreeImage.h>
#pragma comment(lib,"FreeImage.lib")
至于我们已经把这个lib文件放在了VS的路径之下,但是并没有被工程所搜索到原因,还不清楚。
如果您觉得这篇博文有用,请访问我的个人站:http://www.stubbornhuang.com,更多博文干货等着您。