【问题标题】:Qt5 - MinGW64 - qResourceFeatureZlib() entry point not foundQt5 - MinGW64 - qResourceFeatureZlib() 入口点未找到
【发布时间】:2020-04-01 11:15:41
【问题描述】:

我的软件程序 (GUI) 在 Debian GNU/Linux 上构建/运行良好,但我未能 在 Win10/MinGW64 上运行它。我可以很好地构建它,但是当我运行它时,错误消息(在 一个Win10系统对话框)是那个(我c ++过滤的损坏名称) 在我的可执行程序中找不到 qResourceFeatureZlib() 入口点。

我研究了一下,发现该函数在 Qt5Core 库中。 由于我链接的是 Qt5Widgets,我认为没有必要也链接 明确反对 Qt5Core。我链接到 Qt5Core,但这并没有改变错误。

这会给任何人敲响警钟吗?

非常感谢,

菲利波

我在 Win10 上运行开发堆栈:MSYS2(64 位)/MinGW64,使用 CMake 作为构建系统。

【问题讨论】:

  • 请展示它,而不是描述您的代码。请在您的问题帖子中添加一个最小的example。没有看到你的代码,我们只能猜测问题可能是什么..

标签: cmake qt5 mingw-w64 msys2


【解决方案1】:

听起来您在add_executable() 处缺少WIN32 开关。

在 Windows 上,图形应用程序(但不是控制台应用程序)将应用程序(通常是您的 main() 函数)的入口点(被调用的第一个函数)替换为包含设置代码的不同函数 (WinMain())并且自己会打电话给你的main()

阅读cmake documentation 中的WIN32 开关。

编辑:如果您想知道为什么未找到的入口点称为 qResourceFeatureZlib() 而不是 WinMain()Qt resource system 使您能够(以非常简化的方式描述)附加一个包含以下内容的 zip 文件您想要的任何文件到您的可执行文件并使用它们,就好像它们在您的可执行文件的某个文件夹中的某个位置一样。为了透明地执行此操作,Qt 挂钩程序的入口点,提取 zip 文件,然后调用 main()WinMain()

【讨论】:

  • 感谢您的回答。不幸的是,根据您指出的 CMake 文档设置所有 CMake 配置并没有解决问题。这一定是在 gcc 版本或 Qt 版本之间发生了变化,因为我尝试按照 2019 年 5 月的方式构建软件并得到这个错误,而当时我可以完美地构建它。还在调查中……
猜你喜欢
  • 1970-01-01
  • 2015-03-10
  • 2012-09-15
  • 1970-01-01
  • 2012-09-04
  • 1970-01-01
  • 2016-03-28
  • 2020-05-23
  • 1970-01-01
相关资源
最近更新 更多