[英]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%的(正如我前面提到的)他的主頁似乎是不可訪問現在。
我目前正在尋找以下解決方案之一:
我真的很感激這些解決方案中的任何一種,因為我非常需要ImageMagick的處理和轉換圖像的能力,以及MagickNet的易用性。 如果您需要更多信息,我可以提供其他詳細信息。
另外,我正在使用Visual Studio 2008編譯源文件,並且所提供的項目轉換完全沒有問題。
我只是能夠克服這一點,並且能夠針對最新版本的ImageMagick成功編譯MagickNET。 我不得不做幾件事。
將以下庫文件添加到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
內置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.