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

使用Conan2与CMake构建Qt5时Feature 'system-png'启用失败如何解决

解决Conan2 + Qt5构建时的system-png错误

问题场景

使用Conan2搭配CMake构建Qt5.15.11项目时,执行conan install . --output-folder=build --build=missing触发以下错误:

ERROR: Feature 'system-png' was enabled, but the pre-condition 'features.png && libs.libpng' failed.

qt/5.15.11: ERROR:
Package '020a7cd993e36db783fa98d5d067f534b330337c' build failed
qt/5.15.11: WARN: Build folder C:\Users\xxx\.conan2\p\b\qt663cecdfcc715\b
ERROR: qt/5.15.11: Error in build() method, line 843
        self.run("%s %s" % (os.path.join(self.source_folder, "qt5", "configure"), " ".join(args)))
        ConanException: Error 3 while executing

从配置摘要可见,Qt尝试启用system-png但无法找到系统libpng:

PNG .................................. yes
  Using system libpng ................ no

环境信息:

  • Python 3.10.6
  • Pip 22.2.1
  • MSVC 2022
  • CMake 3.15
  • Windows 10
  • Conan 2.7.1

项目结构:

Project
├── CMakeLists.txt
├── conanfile.txt
└── src
    └── main.cpp

原conanfile.txt内容:

[requires]
qt/5.15.11

[generators]
CMakeDeps
CMakeToolchain

[layout]
cmake_layout

用户尝试过添加libpng/1.6.43到依赖列表,以及手动下载libpng二进制配置环境变量,但问题未解决。

解决方案

1. 修改conanfile.txt,强制Qt使用Conan管理的libpng

更新conanfile.txt,添加libpng依赖,并通过选项禁用Qt对系统png的检测:

[requires]
qt/5.15.11
libpng/1.6.43

[generators]
CMakeDeps
CMakeToolchain

[layout]
cmake_layout

[options]
qt/*:system_png=False
  • qt/*:system_png=False:指定Qt不依赖系统libpng,转而使用Conan提供的版本。

2. 清理旧构建缓存

Conan会缓存之前的失败构建产物,需清理后重新执行:

conan cache clean qt/5.15.11
# Windows系统执行以下命令删除build目录
rmdir /s /q build
# Linux/macOS系统执行
rm -rf build

3. 重新执行安装命令

conan install . --output-folder=build --build=missing

额外提示

  • 无需手动下载libpng二进制或配置环境变量,Conan会自动处理依赖的下载、编译与链接。
  • 当前使用的CMake 3.15版本较低,建议升级到3.20+,可提升Qt5.15与CMake的兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 08:33:12