我目前正在尝试构建支持 ImageMagick 的 Windows 版本的 emacs。
为此,我已经用 MinGW32/MSys 编译了 ImageMagick 以获得兼容的库文件。基本上链接也有效,尽管我必须通过's选项显式添加-llibMagickCore-6.Q16
和-llibMagickWand-6.Q16
链接命令。configure.bat
--lib
但是,即使不存在依赖项,也应该加载适用于 windows 的 emacs 的二进制分发。我在添加链接器选项 ( 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 来构建。