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

CMake用cpack打包Qt应用时Qt运行库与可执行文件存放路径不一致问题

问题原因
  • 该问题和include(GNUInstallDirs)无关,是两处安装目标的路径配置不一致导致的:
    • 项目可执行文件Translation_Verification的安装规则指定路径为${CMAKE_INSTALL_BINDIR},默认对应bin文件夹
    • 调用windeployqt生成的Qt运行时依赖、插件等文件,安装规则指定路径为.,也就是安装包的根目录
  • 启动exe时,Windows优先在exe所在目录搜索依赖的dll和插件,找不到根目录下的Qt相关文件,就会抛出no Qt platform plugin could be initialized的报错。
解决方案

只需要修改Windows分支下Qt依赖的安装路径,和可执行文件的安装路径保持一致即可,将原来的安装规则:

install(
    DIRECTORY ${CMAKE_BINARY_DIR}/qtDeploy/
    DESTINATION .
    FILES_MATCHING PATTERN "*.*"
)

替换为:

install(
    DIRECTORY ${CMAKE_BINARY_DIR}/qtDeploy/
    DESTINATION ${CMAKE_INSTALL_BINDIR}
    FILES_MATCHING PATTERN "*.*"
)

修改后重新生成构建、运行cpack打包,所有Qt依赖就会和可执行文件一起放在bin目录下,程序可以正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:51:01