我想知道在qmake
上使用CMake
的原因,反之亦然。
这两种构建系统的优缺点是什么?
发布于 2015-12-19 23:16:04
到目前为止,CMake是功能更强大的构建系统。说得客气一点,语法“不是很好”。但是,对于任何复杂的项目,人们必须使用QMake (或我所知道的任何构建系统)来实现目标,这也是不好的。但是,对于简单的项目,QMake看起来更好。
如果您需要对Qt以外的第三方依赖项进行配置检查,那么CMake就是您想要的,那么在QMake中对配置检查的支持很少甚至根本不存在。
如果你想在Qt Creator中构建和部署iOS和安卓系统,我强烈建议使用QMake。(不确定现在使用CMake是否可能--这肯定会引起更多的麻烦)。
发布于 2016-05-26 18:08:31
我在我的Qt项目中使用了CMake,我对它非常满意。具体地说,我的CMakeLists.txt中有以下内容:
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,我希望这会对你有所帮助。
发布于 2015-12-19 21:40:44
这意味着如果你有一组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。
https://stackoverflow.com/questions/34370088
复制相似问题