生成原生构建环境: CMake能够生成原生构建配置,如Makefile或Visual Studio解决方案,这使得它能够在不同的IDE和编辑器中无缝工作。 局限: 学习曲线: 相比于qmake,CMake的学习曲线更陡峭,特别是对于新手来说,其复杂的脚本可能难以理解。 配置复杂: 对于小型或中型的Qt项目来说,CMake的复杂性可能是不必要的,
CMake 自己不编译程序, 它相当于用自己的构建脚本 CMakeLists.txt,叫各种编译工具集去生成可执行程序或链接库。 一般用于编译程序的 makefile 文件比较复杂,自己去编写比较麻烦, 而利用 CMake ,就可以编写相对简单的 CMakeLists.txt ,由 CMake 根据 CMakeLists.txt 自动生成 makefile,然后就可以用 make 生成可...
3.2调用共享库的项目 3.2.1再次新建Cmake新建一个Qt Creator项目,用来调用刚刚生成的库 在项目根目录下新建一个plugintest文件夹,把生成的库和头文件include文件夹全复制进去 或者把库生成安装到计算机系统文件夹下,这样每次更新安装更加方便 3.2.2在CMakeLists.txt中添加如下代码 #--- 包含头文件 ---include_dire...
对于复杂的Qt项目:如果你的项目规模较大,需要跨平台构建,或者涉及复杂的依赖关系和构建选项,那么CMake可能是更好的选择。它提供了更高的灵活性和定制性,能够满足复杂项目的构建需求。 示例代码 下面是一个简单的Qt项目示例,分别展示了如何使用qmake和CMake进行构建。 qmake 示例(.pro 文件) plaintext QT += core...
QMake和CMake实现的思路一样,都是调用rc文件。这里需要注意的一点是VC编译器使用的GBK编码,我们如果把rc文件编码改成非GBK编码,将会出现乱码的情况。 我们创建的rc文件: 1 #include "winres.h" 2 #include "version.h" 3 4 // 图标 5 IDI_ICON1 ICON PRODUCT_ICON 6 7 // 版本信息 8 VS_VERSION_...
1. Cmake与Qmake的区别 Qt6中有两种运行环境可以选择,分别是Qmake和Cmake。我看好像Qt5 是默认Qmake,Qt6默认的是Cmake,这边建议是选择Cmake。 下面的图给出了Qmake与Cmake的区别 我们来尝试创建第一个Cmake项目叭~ 2. 初始点点点 以桌面小组件为例 ...
CMake 是一个跨平台的项目构建工具,通俗点说,它会帮你生成 Makefile 或其他编译系统需要的构建文件。
对于Qt这个规模的项目,剩下的选择就不多了,必须功能强大完整,必须跨平台,必须有成熟的生态,基本只有cmake可以选了。 cmake基本用过的人都不会觉得它有多好,其它make系统,比cmake使用体验好的没有cmake功能多,功能多的没有cmake生态完善,总之全面超越cmake的还没有出现。
面对Qt规模的项目需求,qmake已不再满足。Qt团队尝试引入qbs,希望基于JavaScript语法建立一套更强大、更全面的make系统,但最终未能成功实现。在众多选择中,cmake脱颖而出。作为一款成熟、功能强大且跨平台的make系统,cmake在生态建设上领先于其他系统。它几乎满足了大型项目对make系统的所有需求。虽然c...