macOS 13.4编译ImageMagick为ARM64&x86_64通用库遇错求助
编译ImageMagick为ARM64 & x86_64通用库(macOS 13.4)
ImageMagick完全可以编译成支持ARM64和x86_64的通用库,你遇到的错误是因为--enable-osx-universal-binary是PowerPC时代的遗留选项,早已不适用于Apple Silicon+Intel的通用架构构建。以下是可行的构建步骤:
1. 设置架构相关环境变量
通过CFLAGS、LDFLAGS和CPPFLAGS直接告诉编译器生成双架构代码:
export CFLAGS="-arch arm64 -arch x86_64" export LDFLAGS="-arch arm64 -arch x86_64" export CPPFLAGS="-arch arm64 -arch x86_64"
2. 运行configure配置(无需旧标志)
去掉--enable-osx-universal-binary,正常执行configure,可根据需求添加其他配置选项(比如指定安装路径、启用功能等)。如果依赖库通过MacPorts安装,确保MacPorts的bin目录在PATH优先级最高:
./configure --prefix=/usr/local/imagemagick-universal [你的其他配置选项]
注:如果configure无法自动找到依赖库,可通过--with-[libname]-prefix手动指定路径,比如--with-png-prefix=/opt/local(MacPorts默认安装路径)
3. 编译并安装
用多线程加速编译,然后安装:
make -j$(sysctl -n hw.logicalcpu) make install
4. 验证通用架构是否生成成功
使用lipo命令检查生成的二进制文件或库:
lipo -info /usr/local/imagemagick-universal/bin/convert
如果输出包含Architectures in the fat file: convert are: arm64 x86_64,说明构建成功。
内容的提问来源于stack exchange,提问作者Cosmin
相关产品推荐
相关产品推荐

