【发布时间】:2012-12-16 09:43:50
【问题描述】:
我将我的项目代码从 Qt4 升级到了 Qt5。它使用 CMake。 除了一行与 Qt 相关的 Cmake 命令外,转换很顺利。 我在当前文档中找不到,比如
- http://qt-project.org/doc/qt-5.0/qtdoc/cmake-manual.html
- http://qt-project.org/doc/qt-5.0/qtdoc/qtmain.html
如何从 CMake(使用 Qt5)链接到 QtMain?
这是转换我的项目的唯一缺失位。 有人可以向我指出一个解释这一点的文档或解释如何用 Qt5 做到这一点吗?我的 Qt4 代码工作正常,但我找不到 Qt5 的 Cmake 宏。
EDIT> 这是我目前拥有的 CMake 文件:https://bitbucket.org/klaim/aos_qt5/src/593c195c4c6889f6968d68fca018ef425783a063/tools/aosdesigner/CMakeLists.txt?at=wip_qt5
我相信所有 qt5 必要的 CMake 宏都已正确设置,唯一不起作用的是链接到 QtMain 什么都不做,正如预期的那样,因为应该有一个 Qt5 特定的方式来做这件事,我没有在 Qt5 文档中找到。
您可以浏览文件历史记录以了解它是如何与 Qt4 一起工作的。
【问题讨论】:
-
你当前的链接代码是什么样子的?
-
@FrankOsterfeld 这里是:bitbucket.org/klaim/aos_qt5/src/…
-
您遇到的实际错误信息或问题是什么?
-
@DavidGrayson QtMain 没有发生链接,这使得编译假定标准 main() 函数是在启动时调用的函数,这在 Windows 上不是正确的,因为它不是控制台应用程序,但一个 GUI 应用程序。 QtMain 的目的是提供一个 WinMain() 实现,它将在 Windows 上调用您的标准 main() 实现,而无需显示控制台或让项目必须是控制台项目。更一般地说,它的目的是允许用户编写在所有平台上使用的标准 c++ 主函数并隐藏 Windows 细节。
-
@DavidGrayson 问题是(如果您查看链接文档的历史记录),使用 Qt4 有一种方法可以链接到 QtMain(仍在当前的 CMake 文件中),但所有CMake 宏在 Qt5 中发生了变化(为了更简单地将 Qt 与 CMake 一起使用,所以这只是很好的变化),但在文档中没有任何地方解释有什么不同或如何与 QtMain 链接,即使有关于 QtMain 的 Qt5 版本的文档。所以我让Qt4的方式来做,但如前所述,它没有与QtMain链接。