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

Van*_*ing 5 c++ imagemagick visual-studio-2010 unresolved-external magick++

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

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

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

但这不起作用!VS2010返回以下错误:

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

我究竟做错了什么?

非常感谢您的帮助!

更新:

将Linker - > Input - > Additionnal Dependencies设置为:

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
Run Code Online (Sandbox Code Playgroud)

和Linker - > General - > Additionnal Library目录:

C:\Program Files\ImageMagick-6.6.6-Q16\lib
Run Code Online (Sandbox Code Playgroud)

它仍会导致相同的错误......

更新2

在C:\ Program Files\ImageMagick-6.6.6-Q16\lib中打开.lib文件会导致此错误: 替代文字

更新3

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

更新4

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

Ste*_*and 2

您还应该向 Visual Studio 指示用于链接的.lib

在链接器 -> 输入 -> 附加依赖项

编辑:并放置 magick 库的路径

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

EDIT2:如果它仍然不起作用,那么您正在调用带有错误导出签名的函数。启动 msdev 工具 Dependency Walker。并检查 magick.lib 是否真正导出名称为的函数?InitializeMagick@Magick@@YAXPBD@Z

我错了,这不是微软工具:Dependency Walker

我错了,Dependency Walker 不打开 .lib,只打开 Dll 和 Exes。但是,由于您已经?InitializeMagick@Magick@@YAXPBD@Z在 .lib 文件的内容中找到了,这意味着它确实是通过这种方式导出的。

EDIT3:您确定附加库的名称和文件夹正确吗?我真的想不出 Visual C++ 无法与您的库链接的另一个原因。如果你的 .lib DO 包含字符串,?InitializeMagick@Magick@@YAXPBD@Z我真的认为它应该链接。

EDIT4:您可以从文件中粘贴<Magick++.h>InitializeMagick 的原型定义吗?有一些东西使得它在 Visual C++ 和你的库供应商之间的编译方式不同。?InitializeMagick@Magick@@YAXPEBD@Z?InitializeMagick@Magick@@YAXPEBD@Z是两个不同的签名。当包含<Magick++.h>Visual C++ 时,其理解有所不同。(这就是为什么我需要查看该函数的原型)