Windows 上的 QT5 C++ exe 构建在冷启动后需要 4 秒以上才能启动

问题描述 投票:0回答:0

诊断问题的步骤

  1. 研究了一个多月

  2. 构建QT静态库

  3. 使用多个编译器、MinGW、WinMake 等编译 .exe

  4. 多版本QT5编译.exe

  5. Back 设计项目以使用 5.0.0 版本

  6. 在 Manjaro 上编译了与 Linux 可执行文件相同的 Github 项目,它运行良好

你好

我们正在 Windows 上构建一个 Github 项目来编译一个 .exe 并遇到一个奇怪的问题,在冷启动时执行时间超过 4 秒,第二次启动 .exe 程序立即加载。

研究这个已经一个多月了,一些论坛说要构建 QT 静态库以加快执行速度,但这导致启动时间减少了 0.5 秒,所以它仍然需要 3.5+ 秒来加载。

所以我们最初用 Cmake 编译 Github 项目来创建一个 Visual Studio 解决方案文件,我的理论是 Visual Studio 是这里的问题,但它不是因为我用多个编译器编译了 .exe,MinGW,WinMake 等,仍然同样的问题。

还用多个版本的 QT5 编译了 .exe,我什至对项目进行了反向工程以使用 5.0.0 版本,仍然是同样的问题。

我还在 Manjaro 上编译了相同的 Github 项目作为 Linux 可执行文件,它工作正常,没有任何问题。

有问题的 Github 项目是一个简单的 GUI,它按顺序组合 mod 并指向分配的引擎。 https://github.com/qbasicer/qzdl/tree/master

Cmake 文件链接 https://github.com/qbasicer/qzdl/blob/master/CMakeLists.txt

主要内容 https://github.com/qbasicer/qzdl/blob/master/qzdl.cpp

在 Windows 上编译时还有其他问题,例如当您打开程序时,窗口向下移动屏幕标题栏的高度并向右移动窗口框架的宽度,但在 Linux 构建中不会发生这种情况.

请帮忙,感谢阅读,希望尽快发言。

在 Visual Studio 上重现问题的步骤。

  1. 下载并解压 Gihub 项目,在目录中放置一个“build”文件夹。

  2. 下载并安装带有 MSVC 和 MINGW 库的 Qt5,然后将路径添加到 Qt5 MSVC 目录。

  3. 打开 Cmake-Gui.exe,引导项目和构建目录并配置为具有安装版本的 VS 解决方案,即 VS2017-2022,带有“Win32”参数。

  4. 在Visual Studio中打开VS解决方案,选择Release参数和Build Solution。

  5. .exe会编译到release目录下,然后将QT依赖qt5core.dll, qt5gui.dll, qt5widgets.dll添加到release目录下

编译后的 .exe 不会自动加载,没有分配的 Windows 服务,没有分配的任务计划程序条目,不需要安装,这是一个可移植的可执行文件。为了启动程序,您需要手动执行 .exe,在这一步之后您可以关闭程序,然后您可以关闭电源(冷启动)或重新启动设备并启动至 Windows。然后手动执行 .exe,你会看到加载主 GUI 需要 4 秒以上,在这一步之后你可以关闭程序,然后再次执行 .exe,你会看到 GUI 立即加载。

c++ windows qt5 exe
© www.soinside.com 2019 - 2024. All rights reserved.