【发布时间】:2012-07-17 17:32:57
【问题描述】:
不久前有人建议 by some of 你使用 FreeImage 作为 C++ 图像处理库。
我现在在让库正常工作时遇到了一些麻烦(这里还是比较新的)。
我尝试加载各种 vcxproj 和 sln 磁贴,它们给了我一个空白项目。由于没有为此提供任何安装说明,我放弃了将其作为 Visual Studio 解决方案。
接下来我尝试了使用 Makefile 编译源代码的老式方法,然后将“FreeImage/Source”添加到链接器。虽然当我调用 FreeImage.h 中声明的函数时 IDE 没有引发任何危险信号,但它在编译期间给了我一堆“错误 LNK2019:未解析的外部符号”,就好像这些函数不存在一样。我怀疑 IDE 找不到定义上述函数的 .cpp 文件,但是当我将 FreeImage/Source/FreeImage 添加到链接器时,我仍然遇到同样的问题。
现在,当我直接包含一些 .cpp 文件(即 Plugin.cpp 和 FreeImage.cpp)进行测试时,我得到了更多未解决的外部符号错误以及“不一致的 dll 链接”之类的内容。 .. 例如 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++ 中的相关 .h 和 .cpp 文件 -> 常规 -> 附加包含的目录和链接器 -> 常规-> 添加库目录。
我们将不胜感激!
【问题讨论】:
-
“我尝试加载各种 vcxproj 和 sln 磁贴,但它们给了我一个空白项目。”你能澄清一下吗? VC2010到底说了些什么?
-
VC2010 会执行转换过程,然后当它完成后,我看到一个包含一堆项目(即 FreeImage、LibPng 等)的解决方案,其中每个项目都是空的 - 没有标题,没有源代码,zilch .但是,您对我尝试简单地包含库文件夹有什么建议吗?正如我所描述的,VC 也在这方面给了我一些问题。
-
这个问题似乎与 DLL 相关(我是一个新的 C++ 用户 - 它们像 .jar 文件吗?)。错误 LNK2019 消息实际上是“未解析的外部符号 imp__[insert function name] 错误,Google 告诉我 __imp 意味着函数是从 .dll 导入的(某些 C++ 版本的 .jar 文件?)。挖掘通过 FreeImage.h,我确实看到了一些像
#ifdef FREEIMAGE_EXPORTS #define DLL_API __declspec(dllexport)这样的行,而出现 LNK 错误的 fxns 看起来像DLL_API FIBITMAP *DLL_CALLCONV fxn()我不确定这些变量是如何赋值的。 -
我正在尝试同样的问题。
标签: c++ image-processing freeimage