Magick++ in VS2010 - unresolved external symbol

前端 未结 4 1073
孤独总比滥情好
孤独总比滥情好 2021-01-18 11:52

I\'m trying to use ImageMagick Magick++ for a C++ Project in VS2010. I installed the Library from here: klick

Then in my Project, I added c:/program files/ImageMagick

4条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-18 12:32

    You should also indicate to Visual Studio the .lib to be used for linking

    in Linker -> Input -> Additionnal Dependencies

    EDIT: and put the path of the magick library

    in Linker -> General -> Additionnal Library Directories

    EDIT2: if it still doesnt work, then you are calling a fonction with a wrong exported signature. Launch the msdev tool Dependency Walker. And check if the magick.lib really exports the function whose name is ?InitializeMagick@Magick@@YAXPBD@Z

    I am wrong it's not a microsoft tool: Dependency Walker

    I was wrong Dependency Walker doesnt open .lib, only Dlls and Exes. However since you have found ?InitializeMagick@Magick@@YAXPBD@Z in the content of the .lib file, it means that it is reaaly exported this way.

    EDIT3: Are you SURE the name and the folder of the additionnal library is correct. I really cannot think of another reason for Visual C++ being unable to link with your library. If your .lib DO contains the string ?InitializeMagick@Magick@@YAXPBD@Z I really think it should link.

    EDIT4: could you paste from the file the prototype definition of InitializeMagick ? there is something that makes it be compiled differently between visual c++ and your library supplier. ?InitializeMagick@Magick@@YAXPEBD@Z and ?InitializeMagick@Magick@@YAXPEBD@Z are two DIFFERENT signatures. When including Visual C++ understands its differently. (that's why I need to see the prototype of the function)

提交回复
热议问题