首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CMake和qmake的优缺点是什么?

CMake和qmake的优缺点是什么?
EN

Stack Overflow用户
提问于 2015-12-19 19:18:24
回答 3查看 42.8K关注 0票数 50

我想知道在qmake上使用CMake的原因,反之亦然。

这两种构建系统的优缺点是什么?

EN

回答 3

Stack Overflow用户

发布于 2015-12-19 23:16:04

到目前为止,CMake是功能更强大的构建系统。说得客气一点,语法“不是很好”。但是,对于任何复杂的项目,人们必须使用QMake (或我所知道的任何构建系统)来实现目标,这也是不好的。但是,对于简单的项目,QMake看起来更好。

如果您需要对Qt以外的第三方依赖项进行配置检查,那么CMake就是您想要的,那么在QMake中对配置检查的支持很少甚至根本不存在。

如果你想在Qt Creator中构建和部署iOS和安卓系统,我强烈建议使用QMake。(不确定现在使用CMake是否可能--这肯定会引起更多的麻烦)。

票数 25
EN

Stack Overflow用户

发布于 2016-05-26 18:08:31

我在我的Qt项目中使用了CMake,我对它非常满意。具体地说,我的CMakeLists.txt中有以下内容:

代码语言:javascript
运行
复制
set(QT_VERSION_REQ "5.2")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt5Core ${QT_VERSION_REQ} REQUIRED)
find_package(Qt5Quick ${QT_VERSION_REQ} REQUIRED)
find_package(Qt5Widgets ${QT_VERSION_REQ} REQUIRED)
find_package(Qt5Gui ${QT_VERSION_REQ} REQUIRED)

set(CMAKE_AUTOMOC ON)
QT5_WRAP_UI( UI_HDRS ${UI_FILES} )

ADD_EXECUTABLE(${MOC_HEADERS})

target_link_libraries(${PROJECT_NAME}
  Qt5::Core
  Qt5::Quick
  Qt5::Widgets  
  Qt5::Gui  
)

如果你决定使用CMake,我希望这会对你有所帮助。

票数 19
EN

Stack Overflow用户

发布于 2015-12-19 21:40:44

参见What is a CMake generator?

这意味着如果你有一组C/C++源代码和一个写得很好的CMakeLists.txt,你可以使用CMake为不同的构建系统(基于命令行的集成开发环境)创建项目,比如Visual Studio,CodeBlocks,g++...有了CMake,你可以选择最终使用的集成开发环境和编译器,并“轻松”地在支持的环境和编译器之间进行切换。

据我所知,qmake将只支持QtCreator作为集成开发环境(在后台使用第三方编译器: nmake from Visual Studio,g++,MinGW...)。但是您不会使用qmake生成Visual Studio解决方案(sln文件)。

确实,与CMake相比,qmake使基于Qt的应用程序的编译变得更容易(因为MOC、.ui和对Qt的喜爱都是原生支持的)。当迁移到Qt的新版本时,可能只需要修改一下您的CMakeLists.txt (我在从Qt4迁移到Qt5时遇到了一些困难,我想使用qmake会更容易一些)。

就个人而言,我在构建环境中使用CMake,当我需要使用QtCreator (主要用于安卓部署)时,我会让我的CMake脚本为qmake/QtCreator生成一个.pro文件。它工作得很好,因为qmake .pro文件语法非常简单。那么我就不会被锁定到特定的IDE。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34370088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档