【发布时间】:2019-06-26 05:05:50
【问题描述】:
这个问题已经在 4 年前提出,因此 High Sierra/Mojave 部分是新的。以下是未回答问题的链接: compile static version of imagemagick convert util
我正在尝试编译可移植版本的 IM,我可以将其包含在可在其他 MacOS 机器上使用的脚本中,而无需首先在机器上安装开发人员工具或 Mac 端口。我看到 ImageMagick.org 为 Windows 提供静态和可移植的构建,但只为 OS X/Darwin 提供预编译的二进制文件。
当我尝试在全新安装 Mojave 的 Mac 上运行预编译版本时,我得到以下信息:
dyld: Library not loaded: /ImageMagick-7.0.8/lib/libMagickCore-7.Q16HDRI.6.dylib
Referenced from: /Users/chrisnorman/Desktop/ImageMagick-7.0.8/bin/./magick
Reason: image not found
当我针对预编译的二进制文件 ot magick 运行 otool(这需要我安装命令行开发人员工具)时,我得到以下信息:
otool -L magick
magick:
/ImageMagick-7.0.8/lib/libMagickCore-7.Q16HDRI.6.dylib (compatibility version 7.0.0, current version 7.0.0)
/ImageMagick-7.0.8/lib/libMagickWand-7.Q16HDRI.6.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
这比我尝试使用在另一台 Mac 上编译并在全新安装的 Mojave Mac 上运行的二进制文件时得到的列表要短。
我想要一些关于如何在 ImageMagick 下载页面上编译类似于他们为 Windows 预编译的 IM 便携版本的版本的指导。我可以在任何 Mac 上运行并运行它,而无需担心机器上是否已经安装了一堆动态库。
这是我当前的安装脚本,用于尝试在已安装 Xcode 的 Mac 上构建 IM:
#!/bin/bash
set -e
IMBUILD=/tmp/imbuild/
mkdir -p $IMBUILD/bin
# get IM (Version 7 at the moment)
mkdir im_download && cd im_download
curl -O http://www.imagemagick.org/download/ImageMagick.tar.gz
for file in *.gz ; do tar zxf $file; done
rm *.tar.gz
cd ImageM*
# get delegates
# jpeg
echo ">>>>>>>>>>>>>> JPEG"
curl -O http://www.imagemagick.org/download/delegates/jpegsrc.v9b.tar.gz
tar zxf jpeg*.gz && rm jpeg*.gz && mv jpeg* jpeg && cd jpeg
./configure --disable-shared --disable-dependency-tracking
make
cd ..
# png
echo ">>>>>>>>>>>>>> PNG"
curl -O http://www.imagemagick.org/download/delegates/libpng-1.6.31.tar.gz
tar zxf libpng*.gz && rm libpng*.gz && mv libpng* png && cd png
./configure --disable-shared --disable-dependency-tracking
make
cd ..
# lcms
echo ">>>>>>>>>>>>>> LCMS"
curl -O http://www.imagemagick.org/download/delegates/lcms2-2.8.tar.gz
tar zxf lcms2*.gz && rm lcms2*.gz && mv lcms2* lcms && cd lcms
./configure --disable-shared --disable-dependency-tracking
make
cd ..
# tiff
echo ">>>>>>>>>>>>>> TIFF"
curl -O http://www.imagemagick.org/download/delegates/tiff-4.0.8.tar.gz
tar zxf tiff*.gz && rm tiff*.gz && mv tiff* tiff && cd tiff
./configure --disable-shared --disable-dependency-tracking
make
cd ..
#build imagemagick (YMMV)
echo ">>>>>>>>>>>>>> IMAGEMAGICK"
./configure --disable-shared \
--disable-dependency-tracking \
--disable-shared \
--enable-osx-universal-build \
--enable-delegate-build \
--enable-static \
--disable-installed \
--without-frozenpaths \
--prefix=$IMBUILD \
--with-openexr=no \
--disable-docs \
--with-lcms=yes \
--without-x \
--without-webp \
--without-modules \
--with-zero-configuration \
--with-jpeg \
--without-pango \
--enable-hdri=no \
--without-gvc \
--with-raw
make install
ls $IMBUILD/bin
上面的配置是我要的,所以我最需要的是JPEG、TIFF和LCMS。
因此,任何关于我需要添加到此脚本以获得真正可移植版本的 IM 的指针或提示都会很棒!
【问题讨论】:
-
我不是这方面的专家,但也许这个线程可能会有所帮助。见imagemagick.org/discourse-server/…
标签: macos compilation imagemagick