我将项目代码从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与QtMain链接(使用Qt5)?

    这是转换项目的唯一缺失点。
    有人可以指向我解释这个问题的文档或解释如何使用Qt5吗?我的Qt4代码正常工作,但是找不到Qt5的Cmake宏。

    编辑>这是我目前拥有的CMake文件:https://bitbucket.org/klaim/aos_qt5/src/593c195c4c6889f6968d68fca018ef425783a063/tools/aosdesigner/CMakeLists.txt?at=wip_qt5

    我相信所有qt5必需的CMake宏都已正确设置,唯一不起作用的是按预期进行的无所事事的链接到QtMain的链接,因为应该有一种Qt5的特定方式来实现,而我在Qt5文档。

    您可以浏览文件历史记录,以了解Qt4如何使用它。

    最佳答案

    从链接到的Qt docs看来,您可以找到Qt5Core而不是Qt5Widgets。这将创建一个名为Qt5::WinMain的导入目标。从Qt docs:



    
    find_package( Qt5Core REQUIRED )
    ...
    add_executable( aosdesigner WIN32 ${AOSDESIGNER_ALL_FILES} )
    target_link_libraries( aosdesigner
        ${Boost_LIBRARIES}
        utilcpp
        aoslcpp
        Qt5::WinMain  # <-- New target available via find_package ( Qt5Core )
    )
    
    qt5_use_modules( aosdesigner Widgets )

    我还建议您删除两个link_libraries调用,因为它是deprecated command,并且我将CMake版本2.8.9而不是2.8指定为CMakeLists.txt顶部的最低要求,因为that's required for qt5_use_modules 是。

    07-24 09:44
    查看更多