与 Qt 静态链接的应用程序出现错误:无法加载平台插件“windows”

2023-11-27

我已经在 Windows 7 x64 下的 VS 2010 中静态构建了 Qt 5.0.1。配置参数是

configure -debug-and-release -opensource -confirm-license -platform win32-msvc2010 -nomake examples -nomake tests -no-webkit -static

我使用以下参数使用 jom 执行构建:

jom -j 4

构建过程成功,我可以找到所有库并将我的应用程序与 Qt 静态链接。现在的问题是,当我尝试运行该应用程序时,它给了我一个错误

Module: 5.0.1
File: kernel\qguiapplication.cpp
Line: 781
"Failed to load platform plugin "windows". Available platforms are:"

但在这个错误下面,它没有显示任何平台。我在动态链接 Qt 时遇到了同样的错误。我通过将依赖 DLL(qt5core.dll、qt5gui.dll 等)放在 exe 的同一目录中摆脱了这个问题。但这次我想不出办法了。

At 静态构建后,plugins/platforms/ 文件夹中的 DLL 消失,并被 lib 取代。我也尝试过与 windows.lib 静态链接但无济于事。

任何想法? 问候。


要检查在 Windows 上部署应用程序需要哪些 DLL,请使用依赖项 Walker (http://www.dependencywalker.com/).

根据文档页面Qt for Windows - 部署在 Windows 平台上部署 Qt 应用程序需要一些 DLL:

  • qwindows.dll
  • icudtXX.dll
  • dll
  • dll
  • libGLESv2.dll
  • libEGL.dll

根据用于编译应用程序的编译器,可能需要一些其他库:

  • MSVC specific libraries:
    • msvcrXX.dll
    • msvcpXX.dll
  • MinGW specific libraries
    • libgcc_s_dw2-1.DLL
    • libstdc++-6.dll

注意:在所有这些文件中,将 XX 替换为系统上 DLL 的当前版本。

如果您没有静态构建 Qt(默认),则还需要 Qt5 DLL,具体取决于您在应用程序中使用的 Qt 模块。例子:

  • Qt5Core.dll
  • Qt5Test.dll
  • Qt5Network.dll
  • etc.

所有这些 DLL 都可以在 Qt 安装目录下的“bin”文件夹中找到。

EDIT

最近,Qt 开发人员创建了一个名为 Windeployqt.exe 的工具,它可以帮助您收集部署应用程序所需的所有库:

Usage: windeployqt [options] [file]
Qt Deploy Tool 5.3.0

The simplest way to use windeployqt is to add the bin directory of your Qt
installation (e.g. <QT_DIR\bin>) to the PATH variable and then run:
  windeployqt <path-to-app-binary>
If ICU, ANGLE, etc. are not in the bin directory, they need to be in the PATH
variable. If your application uses Qt Quick, run:
  windeployqt --qmldir <path-to-app-qml-files> <path-to-app-binary>

Options:
  -?, -h, --help            Displays this help.
  -v, --version             Displays version information.
  --dir <directory>         Use directory instead of binary directory.
  --libdir <path>           Copy libraries to path.
  --debug                   Assume debug binaries.
  --release                 Assume release binaries.
  --force                   Force updating files.
  --dry-run                 Simulation mode. Behave normally, but do not
                            copy/update any files.
  --no-plugins              Skip plugin deployment.
  --no-libraries            Skip library deployment.
  --qmldir <directory>      Scan for QML-imports starting from directory.
  --no-quick-import         Skip deployment of Qt Quick imports.
  --no-translations         Skip deployment of translations.
  --no-system-d3d-compiler  Skip deployment of the system D3D compiler.
  --compiler-runtime        Deploy compiler runtime (Desktop only).
  --no-compiler-runtime     Do not deploy compiler runtime (Desktop only).
  --webkit2                 Deployment of WebKit2 (web process).
  --no-webkit2              Skip deployment of WebKit2.
  --json                    Print to stdout in JSON format.
  --list <option>           Print only the names of the files copied.
                            Available options:
                             source:   absolute path of the source files
                             target:   absolute path of the target files
                             relative: paths of the target files, relative
                                       to the target directory
                             mapping:  outputs the source and the relative
                                       target, suitable for use within an
                                       Appx mapping file
  --verbose <level>         Verbose level.

Qt libraries can be added by passing their name (-xml) or removed by passing
the name prepended by --no- (--no-xml). Available libraries:
bluetooth clucene concurrent core declarative designercomponents designer gui
clucene qthelp multimedia multimediawidgets multimediaquick network nfc opengl
positioning printsupport qml quick quickparticles script scripttools sensors
serialport sql svg test widgets winextras xml xmlpatterns

Arguments:
  [file]                    Binary or directory containing the binary.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 Qt 静态链接的应用程序出现错误:无法加载平台插件“windows” 的相关文章

  • 与 MinGW 的静态和动态/共享链接

    我想从一个简单的链接用法开始来解释我的问题 假设有一个图书馆z它可以编译为共享库 libz dll D libs z shared libz dll 或静态库 libz a D libs z static libz a 让我想要链接它 然后
  • 未找到 DEADLINE 调度策略

    我想在 C 中实现 DEADLINE 调度策略 我知道该功能已实现Linux 3 14 10我正在使用 Ubuntu 14 04Linux 3 17 0 031700 lowlatency 201410060605 SMP PREEMPT这
  • 使用 POST 的 HttpWebRequest 的性能

    我有一个用于测试网络服务的小工具 它可以使用 POST 或 GET 调用 Web 服务 使用POST的代码是 public void PerformRequest WebRequest webRequest WebRequest Creat
  • 如何从经过身份验证的 SecurityToken 中获取声明

    我将令牌作为字符串传递到 SOAP 服务中 并验证了该令牌是否有效 我现在有一个 SecurityToken 在调试模式下我可以看到所有声明 特别是我想传递到另一个方法的 userId 声明 我似乎不知道如何获得这些索赔 现在 我解码了令牌
  • Visual Studio 2013 调试器显示 std::string 的奇怪值

    我有一个大型的 cmake 生成的解决方案 其中包含许多项目 由于某种原因 我无法查看字符串的内容 因为根据调试器 Bx Buf含有一些垃圾 text c str 正确返回 Hello 该问题不仅仅发生在本地字符串上 返回的函数std st
  • 用于 C++ 中图像分析的 OpenCV 二进制图像掩模

    我正在尝试分析一些图像 这些图像的外部周围有很多噪声 但内部有一个清晰的圆形中心 中心是我感兴趣的部分 但外部噪声正在影响我对图像的二进制阈值处理 为了忽略噪音 我尝试设置一个已知中心位置和半径的圆形蒙版 从而使该圆之外的所有像素都更改为黑
  • 公交车公共交通算法

    我正在开发一个可以查找公交路线的离线 C 应用程序 我可以提取时间表 巴士 路线数据 我正在寻找适用于基本数据的最简单的解决方案 可以使用什么算法来查找从巴士站 A 到巴士站 B 的路线 是否有适用于 C Java 的开源解决方案 数据库的
  • 大量互斥体对性能的影响

    假设我有一个包含 1 000 000 个元素的数组 以及多个工作线程 每个线程都操作该数组中的数据 工作线程可能会使用新数据更新已填充的元素 但每个操作仅限于单个数组元素 并且独立于任何其他元素的值 使用单个互斥锁来保护整个数组显然会导致高
  • ASP.NET - Crystal Report Viewer 打印按钮在 ASP.NET 中不起作用

    我正在使用 Visual Studio 2008 但我遇到了水晶报告问题 当我单击打印按钮时 它会将我带到弹出窗口 但未找到页面 弹出的网址是 http localhost aspnet client System Web 2 0 5072
  • DateTime.ParseExact - 为什么 yy 变成 2015 而不是 1915

    为什么 NET 假定以下年份是 2015 年 而不是 1915 年 var d DateTime ParseExact 20 11 15 dd MM yy new CultureInfo en GB 我想 它会尝试接近 但其背后是否有合理的
  • 更改私有模块片段是否会导致模块重新编译?

    On 此页面有关 C 20 模块功能 https www modernescpp com index php c 20 modules private module fragment and header units 我发现了这样的说法 借
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • 使用任一默认捕获模式时,这是通过复制捕获还是 (*this) 通过引用捕获?是一样的吗?

    当我看到以下工作时我有点困惑 struct A void g void f g 但后来我发现this https stackoverflow com a 16323119 5825294答案非常详细地解释了它是如何工作的 本质上 它归结为t
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • C++网络序列化[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一种将 C 数据包序列化为网络流的解决方案 我在这里看到很多帖子提到人们 ACE 谷歌协议缓
  • 在一个解决方案中调用不同项目的方法

    1 个解决方案中有 3 个项目 我对第一个项目中的主文件进行的主要操作 但是我需要调用第三个项目中的方法并使用类 例如 第三个项目有 public DataClasses1DataContext base global WindowsFor
  • 为什么我可以在另一个函数中定义一个函数?

    请参阅下面的代码 我在另一个函数中定义了一个函数 void test1 void void test2 void printf test2 n printf test1 n int main void test1 return 0 这个用法
  • 在多线程环境中捕获信号

    我有一个大型程序 需要尽可能具有弹性 并且有大量线程 我需要捕获所有信号SIGBUS SIGSEGV 并在必要时重新初始化有问题的线程 或者禁用该线程以继续减少功能 我的第一个想法是做一个setjump 然后设置信号处理程序 可以记录问题
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • 稀疏矩阵超定线性方程组c/c++库

    我需要一个库来解决 Ax b 系统 其中 A 是一个非对称稀疏矩阵 每行有 8 个条目 而且可能很大 我认为实现双共轭梯度的库应该没问题 但我找不到一个有效的库 我尝试过 iml 但 iml sparselib 包中缺少一些标头 有小费吗

随机推荐

  • R 是否有像 python 一样的startswith 或endswith 函数? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 gt startsWith abc a 1 TRUE gt startsWith abc c 1 FALSE gt endsWith abc a 1 FALSE gt endsWith
  • 使用 System.Net.Mail 通过 smtp 服务器加速发送多封电子邮件

    我是 C 的新手 但我从 VB Net 学到了很多关于 Windows Net 编程的知识 我刚刚制作了一个简单的 SMTP 客户端 它可以从程序发送电子邮件 它是一个控制台应用程序 一次只能通过服务器发送一封电子邮件 这非常慢 我需要通过
  • 删除列表框上的滚动条

    我在 vba 中使用 userForm 并且有一个列表框 我想删除霍罗兹 从底部滚动条 有没有办法做到这一点 我在属性框中没有看到任何选项 当您将列表框的列宽格式属性设置为宽 然后根据数据调整控件大小时 就会出现这种情况 它将显示滚动条 要
  • 我可以声明 Type 的变量而不在编译时指定 T 吗?

    如何动态加载 MyContent 类 我有 1interface
  • 如何查看表的日志数据绿屏DB2

    如何查看指定表中的日志数据 我想查看某个表在指定时间范围内发生了什么情况 我使用以下命令获取了表上的信息 DSPFD 文件 P6PRDBDB00 P6OIDPF 获得了日志名称和库 但我不知道如何查看对象 P6OIDPF I did go
  • hive 中的映射类型变量

    我在尝试在配置单元中定义地图类型时遇到问题 根据蜂巢手册肯定有地图类型 不幸的是没有任何关于如何使用它的示例 假设 我有一个包含以下列的表 用户 Name Ph CategoryName 此 CategoryName 列具有一组特定的值 现
  • 为什么在 STL 映射中用作值的类需要...中的默认构造函数?

    下面是用作映射中的值的类 class Book int m nId public Book lt Why is this required Book int id m nId id main 内部 map lt int Book gt ma
  • Android 风格传承

    事情是这样的 在我的 Styles xml 中 我有一个通用样式 并且一个样式继承了另一个样式 如下所示
  • com.thoughtworks.xstream.mapper.CannotResolveClassException

    这是我第一次尝试 XStream 但是当我尝试解析我的 xml 文件时 我得到了这个异常 Exception in thread main com thoughtworks xstream mapper CannotResolveClass
  • 如何在Java中获取Windows用户名?

    所以我想做的是让我的Java找到Windows登录的用户名 所以当我说这样的方法时 它会返回用户名 就像我在名为Noah的用户中使用它一样 java会返回 Noah 如果我在用户 Amanda 上 Java 将返回 Amanda 我该怎么做
  • 如何自定义 Spinner 下拉视图

    是否可以自定义微调器下拉视图 默认微调器下拉视图具有适配器视图 我想更改该视图以拥有自己的文本视图或类似的东西 在您的类中添加此内部类并根据需要进行修改 public class MyAdapter extends ArrayAdapter
  • 如何检查访问者是否使用最新版本的浏览器?

    是否有一种简单且自动的方法来检查我的网站 用 asp net 编写 的访问者是否使用最新版本的浏览器 这将允许我显示一条消息 通知他们他们正在运行旧版本并且他们可能想要升级 我的网站在大多数浏览器上进行了测试 但我不测试旧版本 例如 Int
  • 抓取视频的第一帧 - 缩略图分辨率 - iPhone

    我想在我的应用程序中显示视频的 静态 第一帧作为预览 我已阅读此线程并了解我可以使用缩略图 从 iPhone SDK 中的视频 URL 或数据获取缩略图 我有两个问题 1 缩略图的分辨率是多少 我希望将预览设为 4 3 格式 并想知道如果放
  • Angular 模块私有成员

    在 AngularJS 中 是否可以创建私有控制器或服务 这些控制器或服务可以在定义它们的模块中使用 但不能由它们注入的另一个模块使用 例如 是否可以将 PrivateController 设为子模块私有 angular module Ch
  • pandas:从 pandas 表中的日期中减去当前日期

    我正在尝试计算今天与由历史数据组成的 pandas 数据之间的天数差异 下面是预期的代码 df diff pd to datetime df date pd datetime now date 但是 它会产生以下错误 类型错误 不支持的操作
  • 如何使用jquery使图像沿圆形路径移动?

    在这里 我试图使图像沿圆形路径移动 但它没有沿圆形路径移动 我已经尝试过这样的缓慢移动图片 CSS friends position absolute Markup img src http jsfiddle net img logo pn
  • 如何让“git log”显示“svn log -v”等文件名

    SVN 的日志有一个 v 模式 它输出每次提交中更改的文件的文件名 如下所示 jes5199 svn log v r1 jes5199 2007 01 03 14 39 41 0800 Wed 03 Jan 2007 1 line Chan
  • 我可以在 iOS 的 Core Text 中使用 NSAttributedString 吗?

    我正在尝试弄清楚如何获取 NSAttributedString 并在 iPad 上的 Core Text 中使用它 我观看了 WWDC 视频 110 之一 其中有幻灯片 但没有源代码 它描述了如何创建 NSAttributedString
  • 如何在 PHP 中使用 Word Net

    如何在 php 中使用 word Net 是否有任何接口或任何类 我需要使用 wordnet 来实现我的词典目的 在下载页面上可以使用命令行工具进行下载 如果你启用了 exec 你可以从 php 使用它 http wordnet princ
  • 与 Qt 静态链接的应用程序出现错误:无法加载平台插件“windows”

    我已经在 Windows 7 x64 下的 VS 2010 中静态构建了 Qt 5 0 1 配置参数是 configure debug and release opensource confirm license platform win3