我正在尝试使用 ImageMagick 和 MagickNet 库中的源代码编译MagickNet类库 (DLL) 的工作副本。
我无法从创建者的主页获取 MagickNet 源文件的副本,因为它目前已关闭,因此我被迫从此处获取文件和 C++ 项目文件,这是通过 Google 搜索提供的。
按照此处和此处所述的说明,我使用“静态多线程 DLL”选项创建了一个项目并对其进行了编译,然后在确保所有路径都指向正确的文件夹之后,移至 MagickNet 项目文件并对其进行编译.
即便如此,我在编译时仍然收到此错误:
CORE_RL_magick_.lib(nt-base.obj) : error LNK2005: _DllMain@12 already defined in MSVCRT.lib(dllmain.obj)
我还收到 371 个其他错误,所有这些都与“未解决的外部符号 xxxxxxxx”有关,最后一个错误描述了我有“195 个未解决的外部”。
我通过在 ImageMagick 解决方案中的 CORE_magick 项目中注释掉 nt-base.c 源文件中的 DllMain 声明,设法解决了上面的 DllMain 错误,但是仍然存在 372 个其他“未解决的外部”错误。
我对有类似问题的人进行了(谷歌)搜索,有人说作者提供了一个预编译的 MagickNet DLL 下载,它可以 100% 工作,但是(正如我之前提到的)他的主页似乎无法访问现在。
我目前正在寻找以下解决方案之一:
- 我的编译问题的解决方案,因为我根本不熟悉 C++,所以我可能会犯错误,
- 另一个 MagickNet 源文件/项目 zip 的链接 100% 确认可以使用最新版本的 ImageMagick 正确编译,
- 如果有人保留作者主页上的副本,则指向 MagickNet DLL 的 100% 工作预编译副本的链接。它应该是大约 3MB,因为它还包含 ImageMagick 库。
我真的很感激这些解决方案中的任何一种,因为我迫切需要 ImageMagick 操作和转换图像的能力,以及 MagickNet 的易用性。如果您需要更多信息,我可以提供更多详细信息。
此外,我正在使用 Visual Studio 2008 编译源文件,并且提供的项目可以毫无问题地进行转换。