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

conanfile.txt执行conan install时libjpeg重复提供报错如何解决

Conan libjpeg 与 libjpeg-turbo 冲突解决(仅修改conanfile.txt)

这个报错的触发原因是:gdal/3.4.3的默认依赖链会拉取libjpeg/9d,和你在requires里显式声明的libjpeg-turbo/2.0.5都声明提供libjpeg功能,Conan无法自动选定使用哪个实现,因此抛出冲突。

不需要切换到conanfile.py,以下两种方案都可以仅通过修改conanfile.txt解决问题:


方案1:全局替换libjpeg依赖(推荐,适配所有依赖链场景)

在conanfile.txt中新增[replace_requires]配置段,将依赖树中所有对libjpeg的引用统一替换为你指定的libjpeg-turbo版本,从根源消除重复提供同功能的问题。
修改后的完整conanfile.txt内容如下:

[requires]
libexif/0.6.23
sdl/2.0.20
nlohmann_json/3.10.5 
yaml-cpp/0.6.3
gdal/3.4.3
openssl/1.1.1o
libjpeg-turbo/2.0.5

[replace_requires]
libjpeg/*: libjpeg-turbo/2.0.5

[generators]
cmake_find_package
cmake_paths

配置规则libjpeg/*: libjpeg-turbo/2.0.5表示匹配所有版本的libjpeg依赖,全部替换为libjpeg-turbo/2.0.5,不管是gdal还是其他间接依赖引入的libjpeg都会被替换,不会再出现冲突。


方案2:单独指定gdal的jpeg实现

如果不想做全局替换,也可以通过选项单独配置gdal使用libjpeg-turbo作为jpeg依赖,新增[options]段即可:

[requires]
libexif/0.6.23
sdl/2.0.20
nlohmann_json/3.10.5 
yaml-cpp/0.6.3
gdal/3.4.3
openssl/1.1.1o
libjpeg-turbo/2.0.5

[options]
gdal:with_jpeg=libjpeg-turbo

[generators]
cmake_find_package
cmake_paths

*注意:如果后续新增的其他依赖也隐式引入了libjpeg,这个方案会再次触发冲突,优先选择方案1稳定性更高。

修改完成后重新执行conan install命令即可正常完成依赖安装,不需要编写conanfile.py相关逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:15:42