You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7编译Darktable时CMake无法找到手动编译的Exiv2包如何解决?

解决CentOS7编译Darktable时的Exiv2版本依赖问题

我最近在CentOS7环境下编译最新版Darktable时,碰到了Exiv2版本不兼容的问题,折腾一番后终于解决了,把过程分享给大家:

编译背景与初始问题

我一开始完全按照Darktable官方步骤操作:

mkdir build/
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/darktable/ ..
make
sudo make install

但执行cmake时直接报错——CentOS7自带的Exiv2是0.23版本,而Darktable要求最低0.24版本,版本不达标。

初次尝试后的新问题

我先用dnf卸载了系统自带的0.23版本,从源码编译安装了Exiv2 0.26,还特意指定--prefix=/usr确保全局可用,但再次运行cmake还是弹出错误:

CMake Error at cmake/modules/FindExiv2.cmake:46 (message):
Exiv2 version check failed. Version was found, at least version 0.24 is required
Call Stack (most recent call first):
src/CMakeLists.txt:292 (find_package)
-- Configuring incomplete, errors occurred!

排查与最终解决方法

我查看了src/CMakeLists.txt第292行的find_package(Exiv2 0.24 REQUIRED)语句,顺着CMake的依赖查找逻辑排查,发现了问题所在:

  • 手动编译的Exiv2把配置文件exiv2.pc放在了/usr/lib/pkgconfig/目录下
  • 而CentOS7的64位系统中,CMake默认会优先查找/usr/lib64/pkgconfig/路径下的.pc配置文件

知道原因后就简单了,只需要在/usr/lib64/pkgconfig下创建一个指向正确exiv2.pc的软链接:

sudo ln -s /usr/lib/pkgconfig/exiv2.pc /usr/lib64/pkgconfig/exiv2.pc

之后重新运行cmake命令,就能成功识别到符合版本要求的Exiv2包了,后续的make和sudo make install也都顺利完成了。

内容的提问来源于stack exchange,提问作者t0rdn3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:49:02