我目前正在嘗試構建Windows版本的支持ImageMagick的emacs。MinGW32:與靜態標誌ImageMagick鏈接
爲此,我已經用MinGW32/MSys編譯ImageMagick以獲得兼容的庫文件。基本上鍊接也可以,但我必須明確地將-llibMagickCore-6.Q16
和-llibMagickWand-6.Q16
添加到鏈接命令通過configure.bat
的--lib
選項。
但是,emacs for windows的二進制分佈應該加載,即使在依賴關係不存在時也是如此。我添加鏈接器選項(configure.bat --ldflags
)-static
時獲得此行爲。
但是,當我嘗試使用ImageMagick-Support進行編譯時,靜態鏈接失敗,說它無法找到ImageMagick包含。
庫文件位於D:/BUILD/libraries/lib
。舉個最簡單的例子:
D:\>ld -LD:/BUILD/libraries/lib -llibMagickWand-6.Q16
D:\>ld -static -LD:/BUILD/libraries/lib -llibMagickWand-6.Q16
ld: cannot find -llibMagickWand-6.Q16
但是,該目錄包含靜態庫。
D:\BUILD\libraries\lib>dir *Magick*
[...]
2013-07-02 15:16 2,585,830 libMagick++-6.Q16.a
2013-07-02 15:16 1,745,404 libMagick++-6.Q16.dll.a
2013-07-02 15:16 1,178 libMagick++-6.Q16.la
2013-07-02 15:16 5,153,712 libMagickCore-6.Q16.a
2013-07-02 15:16 977,292 libMagickCore-6.Q16.dll.a
2013-07-02 15:16 1,096 libMagickCore-6.Q16.la
2013-07-02 15:16 1,609,692 libMagickWand-6.Q16.a
2013-07-02 15:16 472,364 libMagickWand-6.Q16.dll.a
2013-07-02 15:16 1,142 libMagickWand-6.Q16.la
任何想法,這裏可能會出錯?據我所知,.a
文件是MinGW的靜態庫,所以沒有.lib
文件(Visual Studio)應該不成問題。
我已經使用了ImageMagick的Unix源代碼分發,因爲Windows源代碼需要Visual Studio進行構建。