Mac平台从源码编译Krita时遇ext_pkgconfig构建错误求助
Mac 13.3.1 编译Krita依赖时
ext_pkgconfig构建失败的解决建议 在Mac 13.3.1 (a)环境下,使用cmake 3.26.3、GNU Make 3.81从源码编译Krita依赖时,反复触发ext_pkgconfig构建失败,错误日志如下:
make: *** No rule to make target `ext_pkgconfig'. Stop. Error: Printing last lines of log output /usr/bin/install -c -m 644 ./iconv.3.html /Users/callum/dev/i/share/doc//iconv.3.html /usr/bin/install -c -m 644 ./iconv_close.3.html /Users/callum/dev/i/share/doc//iconv_close.3.html /usr/bin/install -c -m 644 ./iconv_open.3.html /Users/callum/dev/i/share/doc//iconv_open.3.html /usr/bin/install -c -m 644 ./iconv_open_into.3.html /Users/callum/dev/i/share/doc//iconv_open_into.3.html /usr/bin/install -c -m 644 ./iconvctl.3.html /Users/callum/dev/i/share/doc//iconvctl.3.html [100%] Completed 'ext_iconv' [100%] Built target ext_iconv Build Success! ext_iconv Building ext_pkgconfig make: *** No rule to make target `ext_pkgconfig'. Stop. Error: Failed build ext_pkgconfig build fail, attempting known fixes... Error building package ext_pkgconfig, stopping...
已尝试操作:
- 安装所有相关软件包,未解决问题
- 通过brew卸载pkgconfig等相关包后,编译可继续,但已运行12小时仍未完成
可行的解决步骤
1. 校验Krita源码子模块完整性
ext_pkgconfig属于Krita依赖构建系统的子模块,先确认源码仓库的子模块拉取完整:
cd /path/to/your/krita/source git submodule update --init --recursive
2. 指定系统已安装的pkgconfig路径
避免构建系统重新编译ext_pkgconfig,直接指定系统或可用版本的pkgconfig路径,cmake配置时添加参数:
cmake -DPKG_CONFIG_EXECUTABLE=/usr/bin/pkg-config ..
若使用brew安装的pkgconfig,可替换路径为/usr/local/bin/pkg-config,确保该路径下的pkgconfig正常可用。
3. 清理构建缓存后重新启动编译
长时间编译产生的缓存可能导致依赖异常,清理后重新配置构建:
rm -rf build/ cmake .. make
4. 升级GNU Make版本
当前使用的GNU Make 3.81版本较陈旧,Krita构建系统对新版本Make兼容性更好,通过brew升级:
brew install make # 将新版本Make加入PATH,确保优先使用 echo 'export PATH="/usr/local/opt/make/libexec/gnubin:$PATH"' >> ~/.zshrc source ~/.zshrc
5. 禁用ext_pkgconfig的强制编译
如果系统已存在可用的pkgconfig,可在cmake配置时跳过该依赖的编译:
cmake -DBUILD_PKGCONFIG=OFF ..
内容的提问来源于stack exchange,提问作者Callum
相关产品推荐
相关产品推荐

