簡體   English   中英

MagickNet C ++源代碼編譯失敗

[英]MagickNet C++ Source Compilation Failure

我正在嘗試使用ImageMagick和MagickNet庫的源代碼來編譯MagickNet類庫(DLL)的工作副本。

由於無法使用,我無法從創建者的主頁上獲取MagickNet源文件的副本,因此,由於Google搜索的緣故,我不得不從此處獲取文件和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但其中工程100%的(正如我前面提到的)他的主頁似乎是不可訪問現在。

我目前正在尋找以下解決方案之一:

  1. 解決編譯問題的方法,由於我一點都不熟悉C ++,因此我可能會犯一個錯誤,
  2. 另一個MagickNet源文件/項目zip的鏈接已被100%確認可以使用最新版本的ImageMagick正確編譯,
  3. 如果有人保留了作者主頁上的副本,則指向MagickNet DLL的100%有效的預編譯副本的鏈接。 它也應包含ImageMagick庫,大約為3MB。

我真的很感激這些解決方案中的任何一種,因為我非常需要ImageMagick的處理和轉換圖像的能力,以及MagickNet的易用性。 如果您需要更多信息,我可以提供其他詳細信息。

另外,我正在使用Visual Studio 2008編譯源文件,並且所提供的項目轉換完全沒有問題。

我只是能夠克服這一點,並且能夠針對最新版本的ImageMagick成功編譯MagickNET。 我不得不做幾件事。

  1. 將ImageMagick配置為使用StaticMTDll。
  2. 編輯magick-config.h以取消定義X11支持。
  3. 從ImageMagick解決方案中刪除了CORE_xlib項目。
  4. 清理/重建ImageMagick
  5. 將以下庫文件添加到MagickNet的鏈接器設置中

    CORE_DB_bzlib_.lib
    CORE_DB_coders_.lib
    CORE_DB_jbig_.lib
    CORE_DB_jpeg_.lib
    CORE_DB_magick_.lib
    CORE_DB_png_.lib
    CORE_DB_tiff_.lib
    CORE_DB_ttf_.lib
    CORE_DB_wand_.lib
    CORE_DB_wmf_.lib
    CORE_DB_zlib_.lib
    CORE_DB_libxml_.lib
    CORE_DB_jp2_.lib
    CORE_DB_lcms_.lib
    Ws2_32.lib

  6. 內置MagickNet

我確實必須對MagickNet進行更新,因為自MagickNet網站上的源代碼發布以來,方法已被棄用。 我將嘗試使存儲庫聯機以共享整個解決方案。

我遇到了完全相同的問題,而Bromanko的答案解決了這個問題。。。

在imagemagick的magick-config.h中,除了對這一行進行注釋之外:

define MAGICKCORE_X11_DELEGATE

...還需要注釋掉該行:

define ProvideDllMain

那就用煤氣煮飯。

謝謝bromanko ...

由於MSvcrt和MFC庫的鏈接順序(基於Google搜索,這似乎是正確的),因此您看到了鏈接器問題。 關於MSDN的這篇文章似乎有一個解決方案-已過時,但是基本問題是相同的,因此選項應該相似。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM