Qt 6中qt_generate_deploy_app_script在Windows报错:qt.conf路径非绝对路径
解决Qt6 Windows部署脚本路径错误问题
问题描述
使用qt_generate_deploy_app_script生成部署脚本时,macOS运行正常,但Windows下报错:
Given qt.conf path is not an absolute path: 'dist/bin/qt.conf'
问题原因
Windows平台下,Qt部署工具要求qt.conf的路径必须是绝对路径。你的CMake配置中,Windows下install(TARGETS)的DESTINATION设为.(相对路径),导致生成的部署脚本未能将路径解析为绝对路径,触发错误。
解决方案
在qt_generate_deploy_app_script中显式指定INSTALL_PREFIX参数,使用CMAKE_INSTALL_PREFIX变量(该变量默认是绝对路径),让部署脚本生成正确的绝对路径qt.conf。
修改后的CMake配置:
if(WIN32) install(TARGETS obliteration DESTINATION .) else() install(TARGETS obliteration BUNDLE DESTINATION . RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() qt_generate_deploy_app_script( TARGET obliteration OUTPUT_SCRIPT QT_DEPLOY_SCRIPT NO_TRANSLATIONS NO_COMPILER_RUNTIME INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} # 添加此参数指定绝对安装路径 ) install(SCRIPT ${QT_DEPLOY_SCRIPT})
如果是本地测试打包,也可以在cmake配置时手动指定绝对安装路径,例如:
cmake .. -DCMAKE_INSTALL_PREFIX=D:/your/path/to/dist
这样部署脚本会基于指定的绝对路径生成qt.conf,避免相对路径错误。
内容的提问来源于stack exchange,提问作者user1829232
相关产品推荐
相关产品推荐

