gpt4 book ai didi

c++ - VS2010 中的 Magick++ - 未解析的外部符号

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:53 28 4
gpt4 key购买 nike

我正在尝试将 ImageMagick Magick++ 用于 VS2010 中的 C++ 项目。我从这里安装了库:klick

然后在我的项目中,我将 c:/program files/ImageMagick-6.6.6-Q16/include 添加到包含文件夹中。然后我尝试将 Magick++ 与这段代码结合使用:

#include <Magick++.h>
void main(int argc, char ** argv){
InitializeMagick(*argv);
}

但这行不通!VS2010 返回以下错误:

error LNK2001: unresolved external symbol "__declspec(dllimport) void __cdecl    Magick::InitializeMagick(char const *)" (__imp_?InitializeMagick@Magick@@YAXPBD@Z)
error LNK1120: 1 unresolved externals

我做错了什么?

非常感谢您的帮助!

更新:

将链接器 -> 输入 -> 附加依赖项设置为:

kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;CORE_RL_Magick++_.lib

链接器 -> 常规 -> 附加库目录:

C:\Program Files\ImageMagick-6.6.6-Q16\lib

它仍然会导致同样的错误...

更新 2

打开 C:\Program Files\ImageMagick-6.6.6-Q16\lib 中的 .lib 文件会导致此错误: alt text

更新 3

CORE_RL_Magick++_.lib 包含 ?InitializeMagick@Magick@@YAXPEBD@Z,但不包含 ?InitializeMagick@Magick@@YAXPBD@Z。这是否意味着 .lib 文件已损坏?

更新 4

我通过手动编译 .lib 文件解决了我的问题。感谢大家!

最佳答案

CORE_RL_Magick++_.lib does contain ?InitializeMagick@Magick@@YAXPEBD@Z, but not ?InitializeMagick@Magick@@YAXPBD@Z

使用 undname.exe 实用程序,这些名称取消修饰为:

void __cdecl Magick::InitializeMagick(char const *)
void __cdecl Magick::InitializeMagick(char const * __ptr64)

请注意您在参数中获得的 __ptr64 声明符。您有某种编译设置可以将 char* 转换为 64 位指针。就像针对 64 位操作系统编译此代码一样。但是链接 32 位 .lib。这通常会生成有关 .lib 的位错误的链接器错误,不太确定为什么您看不到它。也许是 mingw 神器,不确定它是如何工作的。

关于c++ - VS2010 中的 Magick++ - 未解析的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4499218/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com