使FreeImage与Visual Studio 2010配合使用

Getting FreeImage to work with Visual Studio 2010

本文关键字:2010 Studio FreeImage Visual      更新时间:2023-10-16

不久前,你们中的一些人建议我使用FreeImage作为C++中图像处理的库。

我现在在让图书馆工作方面遇到了一些麻烦(这里还是相对较新的)。

我试过加载各种vcxproj和sln瓦片,他们给了我一个空白项目。由于没有提供任何安装说明,我放弃了将其作为visual studio解决方案。

接下来,我尝试了一种老式的方法,即使用Makefile编译源代码,然后将"FreeImage/source"添加到链接器中。当我调用FreeImage.h中声明的函数时,IDE不会发出任何危险信号,但在编译过程中,它给了我一堆"错误LNK2019:未解析的外部符号",就好像这些函数不存在一样。我怀疑IDE找不到定义上述函数的.cpp文件,但当我将FreeImage/Source/FreeImage添加到链接器时,我仍然遇到了同样的问题。

现在,当我直接包含一些.cpp文件(即Plugin.cpp和FreeImage.cpp)进行测试时,我会在。。。例如FreeImage.cpp:

const char * DLL_CALLCONV FreeImage_GetVersion() { static char s_version[16]; sprintf(s_version, "%d.%d.%d", FREEIMAGE_MAJOR_VERSION, FREEIMAGE_MINOR_VERSION, FREEIMAGE_RELEASE_SERIAL); return s_version; }

所以,我完全被卡住了。我做错了什么?我觉得我已经遵循了添加库依赖项的适当步骤,例如在C/C++->General->Additional Included Directories和Linker->General->Add library Directories中添加作为相关.h和.cpp文件的直接父级的特定文件夹。

我们将非常感谢您的帮助!

使用FreeImage v3.15.3,我将VS2008项目转换为VS2010没有问题。这座建筑也如预期的那样运作。但是当我链接到静态库时,我得到了一些未解析的外部。首先,我尝试了各种设置/MT/MD链接的技巧,但这并没有解决这些链接问题。

在阅读了一些新手的评论后,我深入研究了freeimage.h。在那里我发现了一个宏开关freeimage_LIB,它控制函数的调用约定。在包含FREEIMAGE.h文件之前,请使用#define FREIMAGE_LIB。这样,您就可以轻松地静态链接到FreeImage.lib