.net MagickNet C++;源代码编译失败

.net MagickNet C++;源代码编译失败,.net,c++,imagemagick,.net,C++,Imagemagick,我试图使用ImageMagick和MagickNet库中的源代码编译类库(DLL)的工作副本 我无法从创建者的主页上获取一个MaskNETScript文件,因为它目前正在下降,所以我不得不从谷歌搜索中获得文件和C++项目文件。 按照说明和说明,我使用“静态多线程DLL”选项创建了一个项目,并对其进行了编译,然后转到MagickNet项目文件,并在确保所有路径都指向正确的文件夹后进行编译 即使如此,我在编译时仍不断收到此错误: CORE_RL_magick_.lib(nt-base.obj) :

我试图使用ImageMagick和MagickNet库中的源代码编译类库(DLL)的工作副本

我无法从创建者的主页上获取一个MaskNETScript文件,因为它目前正在下降,所以我不得不从谷歌搜索中获得文件和C++项目文件。 按照说明和说明,我使用“静态多线程DLL”选项创建了一个项目,并对其进行了编译,然后转到MagickNet项目文件,并在确保所有路径都指向正确的文件夹后进行编译

即使如此,我在编译时仍不断收到此错误:

CORE_RL_magick_.lib(nt-base.obj) : error LNK2005: _DllMain@12 already defined in MSVCRT.lib(dllmain.obj)
我还收到371个其他错误,所有这些错误都与“未解析的外部符号xxxxxxxx”有关,最后第372个错误描述我有“195个未解析的外部符号”

我通过注释掉ImageMagick解决方案中CORE_magick项目的nt base.c源文件中的DllMain声明,成功地解决了上面的DllMain错误,但是其他372个“未解决的外部”错误仍然存在

我曾在谷歌上搜索过有类似问题的人,并说作者提供了一个预编译的MagickNet DLL的下载,该DLL可以100%工作,但是(正如我前面提到的)他的主页现在似乎无法访问

我目前正在寻求以下解决方案之一:

  • 解决我的编译问题,因为我可能会犯一个错误,因为我根本不熟悉C++,
  • 指向另一个MagickNet源文件/项目zip的链接,该文件已100%确认使用最新版本的ImageMagick正确编译
  • 指向MagickNet DLL的100%工作预编译副本的链接,如果有人从作者的主页保留了副本。它应该大约为3MB,因为它还包含ImageMagick库
  • 我非常感谢这些解决方案中的任何一个,因为我迫切需要ImageMagick处理和转换图像的能力,以及MagickNet的易用性。如果您需要更多信息,我可以提供更多详细信息


    另外,我正在使用Visual Studio 2008编译源文件,所提供的项目转换完全没有问题。

    您看到的链接器问题是由于msvcrt和MFC库的链接顺序(我猜,基于谷歌搜索,这似乎是真的)。MSDN上似乎有一个过时的解决方案,但基本问题是相同的,因此选项应该相似。

    您看到的链接器问题是由于msvcrt和MFC库的链接顺序(我猜,基于谷歌搜索,这似乎是真的)。在MSDN上似乎有一个过时的解决方案,但基本问题是相同的,因此选项应该是相似的。

    我刚刚能够克服这个问题,并成功地根据最新版本的ImageMagick编译了MagickNET。我不得不做几件事

  • 已将ImageMagick配置为使用StaticMTDll
  • 编辑magick config.h以取消定义X11支持
  • 已从ImageMagick解决方案中删除CORE_xlib项目
  • ImageMagick的清理/重建
  • 将以下库文件添加到MagickNet的链接器设置中

    核心数据库bzlib.lib
    核心数据库编码器库
    核心数据库jbig.lib
    CORE\u DB\u jpeg\uu.lib
    CORE\u DB\u magick\uu.lib
    核心数据库png文件库
    CORE_DB_tiff_.lib
    核心数据库ttf.lib
    核心数据库和文件库
    核心数据库wmf.lib
    核心数据库zlib.lib
    核心数据库libxml.lib
    核心数据库jp2.lib
    核心数据库lcms.lib
    Ws2_32.lib

  • 建造魔法网


  • 我确实需要对MagickNet进行更新,因为自从MagickNet网站上的源代码发布以来,方法已经被弃用。我将尝试将存储库联机以共享整个解决方案。

    我刚刚能够克服这一问题,并成功地根据最新版本的ImageMagick编译了MagickNET。我不得不做几件事

  • 已将ImageMagick配置为使用StaticMTDll
  • 编辑magick config.h以取消定义X11支持
  • 已从ImageMagick解决方案中删除CORE_xlib项目
  • ImageMagick的清理/重建
  • 将以下库文件添加到MagickNet的链接器设置中

    核心数据库bzlib.lib
    核心数据库编码器库
    核心数据库jbig.lib
    CORE\u DB\u jpeg\uu.lib
    CORE\u DB\u magick\uu.lib
    核心数据库png文件库
    CORE_DB_tiff_.lib
    核心数据库ttf.lib
    核心数据库和文件库
    核心数据库wmf.lib
    核心数据库zlib.lib
    核心数据库libxml.lib
    核心数据库jp2.lib
    核心数据库lcms.lib
    Ws2_32.lib

  • 建造魔法网


  • 我确实需要对MagickNet进行更新,因为自从MagickNet网站上的源代码发布以来,方法已经被弃用。我将尝试将存储库联机以共享整个解决方案。

    我遇到了完全相同的问题,Bromanko的回答解决了这个问题……只需添加一个小的内容:

    在imagemagick的magick config.h中,除了命令行外:

    define MAGICKCORE_X11_DELEGATE
    
    define ProvideDllMain
    
    …还需要注释掉该行:

    define MAGICKCORE_X11_DELEGATE
    
    define ProvideDllMain
    
    那你就要用煤气做饭了


    感谢bromanko…

    我遇到了完全相同的问题,bromanko的回答解决了这个问题…只需添加一个小问题:

    在imagemagick的magick config.h中,除了命令行外:

    define MAGICKCORE_X11_DELEGATE
    
    define ProvideDllMain
    
    …还需要注释掉该行:

    define MAGICKCORE_X11_DELEGATE
    
    define ProvideDllMain
    
    那你就要用煤气做饭了


    谢谢bromanko…

    我试过那篇文章,但似乎没有任何效果。事实上,它将错误数猛增到4000+。我试过那篇文章,但似乎没有任何效果。事实上,它将错误数量猛增到4000多个。