如何在Mac OS上编译VIPS源码并制作通用分发包?
在Mac OS 13(M1芯片)编译VIPS并制作跨版本分发包
一、源码编译VIPS及依赖(兼容旧版macOS)
1. 准备编译环境
- 安装Xcode命令行工具:
xcode-select --install - 安装编译工具链:
brew install meson ninja dylibbundler
2. 编译兼容多版本的VIPS
- 克隆VIPS源码:
git clone https://github.com/libvips/libvips.git - 进入源码目录:
cd libvips - 设置兼容的最低macOS版本(示例为10.15,可按需修改):
export MACOSX_DEPLOYMENT_TARGET=10.15 - 初始化构建目录,指定安装路径与编译参数(生成通用二进制同时兼容Intel/Apple Silicon):
meson setup build --prefix=/tmp/vips-install -Dmacos_deployment_target=10.15 -Dcpu_family=universal - 编译并安装到指定目录:
ninja -C buildninja -C build install
3. 修复动态链接依赖(确保分发包不依赖系统外库)
- 进入安装目录的bin文件夹:
cd /tmp/vips-install/bin - 使用dylibbundler自动收集并修改依赖路径:
dylibbundler -od -b -x vips -d ../lib/
重复此命令处理bin目录下的其他可执行文件(如vipsedit、vipsthumbnail等)
二、制作可双击分发的安装包
方式1:制作DMG镜像(拖拽式安装)
- 创建临时安装文件夹:
mkdir -p ~/VIPS-Installer/usr/local - 将编译好的文件复制到临时文件夹:
cp -r /tmp/vips-install/* ~/VIPS-Installer/usr/local/ - 添加快捷方式到系统/usr/local(方便用户拖拽):
ln -s /usr/local ~/VIPS-Installer/ - 生成DMG镜像:
hdiutil create -volname "VIPS 安装包" -srcfolder "~/VIPS-Installer" -ov -format UDZO vips-installer.dmg
方式2:制作PKG安装包(自动安装)
- 创建组件配置文件
component.plist:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>BundleIsRelocatable</key> <false/> <key>BundleOverwrite</key> <true/> <key>RootRelativeBundlePath</key> <string>usr/local</string> </dict> </plist>
- 生成组件包:
pkgbuild --root /tmp/vips-install --component-plist component.plist --identifier com.yourorg.vips --version 8.15.0 vips-component.pkg - 生成分发配置文件并编辑:
productbuild --synthesize --package vips-component.pkg distribution.xml
编辑distribution.xml添加安装界面信息(如标题、描述) - 生成最终PKG安装包:
productbuild --distribution distribution.xml --package-path . vips-installer.pkg
内容的提问来源于stack exchange,提问作者Prasad
相关产品推荐
相关产品推荐

