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

Windows下Conan安装项目依赖遇libpng/1.6.34版本冲突求助

解决Windows下Conan依赖冲突问题

我来帮你搞定这个zlib版本冲突的问题~

首先,报错提示的核心是:libpng/1.6.34@bincrafters/stable要求的zlib/1.2.11@conan/stable,和项目中已定义的zlib/1.2.11(没有@conan/stable后缀)被Conan判定为两个不同的包,所以触发了冲突。Linux下能正常运行,大概率是因为Linux环境中依赖链的zlib引用方式更统一,或者Conan的默认解析逻辑在不同系统下有细微差异。

下面给你两个可行的解决方案:

方案1:明确添加统一的zlib依赖

直接在[requires]区块里指定完整的zlib包引用,强制所有依赖都使用这个版本,避免解析歧义:

[requires]
boost/1.69.0@conan/stable
sfml/[>=2.5.0]@bincrafters/stable
zlib/1.2.11@conan/stable  # 统一zlib的包引用
[options]
sfml:window=True
sfml:graphics=True
sfml:audio=True
sfml:network=True
sfml:shared=True
[generators]
cmake
[imports]
bin, *.dll -> ./bin
lib, *.dylib* -> ./bin
lib, *.lib -> ./bin

修改后重新执行conan install . --build,Conan会优先使用你指定的这个zlib版本,消除冲突。

方案2:使用override强制统一版本

如果不想手动添加zlib依赖,可以通过[override]区块强制覆盖所有依赖对zlib的要求:

[requires]
boost/1.69.0@conan/stable
sfml/[>=2.5.0]@bincrafters/stable
[options]
sfml:window=True
sfml:graphics=True
sfml:audio=True
sfml:network=True
sfml:shared=True
[generators]
cmake
[imports]
bin, *.dll -> ./bin
lib, *.dylib* -> ./bin
lib, *.lib -> ./bin
[override]
zlib/1.2.11@conan/stable  # 强制所有依赖使用该版本的zlib

这个方式会让Conan忽略其他依赖对zlib的不同引用,统一使用你指定的版本。

你可以先试试方案1,一般就能解决问题啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:02:32