visual studio 使用vcpkg 配置Qt6 出现 Application failed to start because platform plugin “windows“ is miss
  MxWiQzrJEqjh 2023年11月02日 22 0


visual studio 使用vcpkg 配置Qt6 出现 Application failed to start because platform plugin “windows” is missing的解决办法

最近在Windows平台下使用visual studio开发Qt应用时,遇到一个常见的问题:在使用vcpkg安装的Qt库构建应用时,编译通过但是运行时会报错“Application failed to start because platform plugin “windows” is missing”。经过一番摸索,找到了解决方案,在此分享给大家。

解决方案的关键步骤如下:

  1. 进入应用程序构建生成的文件夹,找到编译生成的可执行文件所在目录。
  2. 在该目录下找到相关的Qt库文件,例如Qt6Core.dll。注意观察库文件的名字是否包含“d”后缀,例如 Qt6Cored.dll。
  3. 在vcpkg的安装目录下,有两个可选文件夹:
  • ./installed/x64-windows/Qt6/plugins/platforms
  • ./installed/x64-windows/debug/Qt6/plugins/platforms
  1. 如果Qt库文件名中包含“d”,就复制debug文件夹下的平台插件文件夹内容。否则复制非debug文件夹的内容。
  2. 将复制的平台插件文件夹内容粘贴到应用程序可执行文件所在目录的platforms文件夹下(如果没有平台插件文件夹就新建一个)。

通过上述步骤,就可以成功解决“platform plugin “windows” is missing”的问题,让编译通过的Qt应用可以正常运行。

如果使用CMake构建项目,可以在CMakeLists.txt中添加自定义命令,在编译后自动复制平台插件,实现自动化:

# assuming your target's name is app
if(WIN32)
  add_custom_command(
    TARGET app 
    POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_directory
      ${Qt6_DIR}/../../$<$<CONFIG:Debug>:debug/>Qt6/plugins/platforms/
      $<TARGET_FILE_DIR:app>/platforms/
  ) 
endif()

参考https://stackoverflow.com/a/71526648/14669364


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
MxWiQzrJEqjh