Conan与Premake配置的项目Release运行缺失Qt6Core、Qt6Widgets.dll
问题根因
Release模式运行时提示缺失Qt6Widgets.dll、Qt6Core.dll,是Windows平台下动态链接库未被自动部署到可执行文件输出目录导致的,属于Conan+Premake集成时的典型配置缺失问题。
修复操作步骤
1. 修正Conan依赖安装逻辑
Conan会严格按照构建类型隔离本地缓存的依赖包,Debug和Release版本的库不能混用:
- 你当前的安装流程大概率只单独为Debug模式拉取了依赖,没有为Release配置单独安装,导致Release构建时根本找不到对应Qt动态库的路径,自然无法触发dll拷贝逻辑。
- 执行安装命令时,需要为每个构建配置单独指定对应参数:
- Debug模式安装:
conan install . --install-folder=build -s build_type=Debug - Release模式安装:
conan install . --install-folder=build -s build_type=Release
- Debug模式安装:
注意:不要在没有指定build_type参数的情况下执行conan install,否则Conan会自动按默认配置拉取依赖,和你项目的实际构建类型不匹配。
2. 调整Premake脚本的Conan集成参数
你当前调用conan_basic_setup()时,没有显式开启运行时依赖自动拷贝的能力:
- 把脚本中原先workspace下的
conan_basic_setup()调用,替换为如下配置,显式跳过自动路径覆盖、开启dll自动拷贝:conan_basic_setup({ skip_copy_runtime_deps = false, -- 构建完成后自动将所有依赖dll拷贝到可执行文件目录 output_dirs = false -- 避免Conan覆盖你自定义的targetdir、objdir输出路径 }) - 确保这个调用放在workspace全局层级,让生成的构建后拷贝步骤可以自动绑定到所有子项目的构建流程中,而不是仅在工作区全局执行一次。
3. 兜底校验
如果调整后仍然报缺失,可手动核对:
- 打开Conan本地缓存中对应
qt/6.0.1@bincrafters/stable包的Release版本bin目录,确认目标dll(Qt6Core.dll、Qt6Widgets.dll)确实存在 - 检查Release可执行文件的输出路径(即
bin/Release-<平台>-<架构>/TileEditor/目录),确认Conan已经把依赖dll拷贝到该目录下。
内容的提问来源于stack exchange,提问作者samuel potter
相关产品推荐
相关产品推荐

