我应该将哪些文件复制到我的项目中以使用 ImageMagick?或如何在 Windows 上使用 MinGW 编译 ImageMagick?
Posted
技术标签:
【中文标题】我应该将哪些文件复制到我的项目中以使用 ImageMagick?或如何在 Windows 上使用 MinGW 编译 ImageMagick?【英文标题】:Which files shoud I copy to my project to use ImageMagick? or How to compile ImageMagick with MinGW on Windows? 【发布时间】:2020-09-10 11:24:27 【问题描述】:我的问题可能看起来有点简单,因为我是 QT 和 C++ 的新手,但我为此苦苦挣扎了一天,所以我决定向某人寻求帮助。我正在尝试在我的 QT-MinGW C++ 项目中使用 ImageMagick
库在不同的图像类型之间进行转换。我从here 下载了源代码并按照描述的步骤构建它:
./configure
make
make install
现在我可以在命令行中使用convert
、magick
等命令,但是我应该如何将库添加到我的QT项目中呢?没有.dll
和\include
文件夹。我应该将哪些文件添加到我的项目中?库文件在哪里?
注意:我想在 Windows 环境中使用该库。我正在使用 Windows Subsystem for Linux 来编译它。
注意 2:我尝试在 Windows 上使用 MinGW MSYS 进行编译,但收到了数千条警告和错误:
c:\ImageMagic/MagickCore/nt-base.c:2774: undefined reference to SetDllDirectoryW' collect2.exe: error: ld returned 1 exit status make[1]: *** [MagickCore/libMagickCore-7.Q16HDRI.la] Error 1
。
急需帮助。
【问题讨论】:
我从未使用过 imagemagic,但该网站似乎建议使用 magick++ 库。 imagemagick.org/script/magick++.php 如果您使用 WSL,我假设您的库是 .so 或 .a 文件,并且与您使用的 linux 发行版兼容。 @AdomasBaliuka 事实上,Magick++ 包含在 ImageMagick 源代码中。但我不知道如何将它包含在我的项目中。 @drescherjm `ImageMagick-7.0.10-29\Magick++\lib\.libs` 中有一个libMagick++-7.Q16HDRI.a
文件,但它是主库文件吗?我应该使用哪些头文件?
.a文件是一个静态库,可以用于你的linux开发。
【参考方案1】:
如果您使用 MinGW 构建 ImageMagick 作为静态库和共享库,您应该在 lib 文件夹中有这些 .a
文件:
以及 bin 文件夹中的这些 .dll
文件:
如果您没有 .dll.a
和 .dll
文件,那么您就没有共享构建。
如果您自己构建了 ImageMagick 并且未构建共享库,则可能是因为依赖项也缺少它们的共享库。
【讨论】:
我使用 MinGW 时失败了。你怎么能建造它?你可以添加你的编译器版本吗?你没有收到任何错误吗?请描述程序。 我使用静态库和共享库构建了所有依赖项,然后构建了 ImageMagick。您可以想象这是一项艰巨的任务,我无法简单地描述。 当我尝试构建它时,我从 here 下载它并在 MSYS 上使用./configure
和 make
。它失败了,请在你的答案中添加一些细节。
我使用这个源文件:imagemagick.org/download/ImageMagick-7.0.10-29.tar.xz,我这样配置:./configure --prefix=$INSTALLPREFIX --build=$BUILDPLATFORM --host=$RUNPLATFORM --enable-zero-configuration --with-modules --without-x --with-gslib --without-perl --disable-openmp --enable-hdri --without-wmf CFLAGS="-fcommon" LDFLAGS="-Wl,--as-needed -lws2_32 -Wl,--enable-auto-import"
以上是关于我应该将哪些文件复制到我的项目中以使用 ImageMagick?或如何在 Windows 上使用 MinGW 编译 ImageMagick?的主要内容,如果未能解决你的问题,请参考以下文章
从 git 存储库中排除 ios 项目的哪些文件? [复制]