【QT入门】qmake和cmake的简单区别

qmake 和cmake 的区别以及如何创建相关项目 和是两种常用的构建工具,它们在功能、适用范围和适用方式上存在显著差异。 阅读详情
AI摘要

本文介绍了Qt开发中的构建工具qmake和cmake,比较了两者在适用范围、项目描述、生成文件、简易性和灵活性方面的差异,建议初学者根据项目需求选择合适的工具。

声明:该专栏为本人学习Qt知识点时候的笔记汇总,希望能给初学的朋友们一点帮助(加油!)


往期回顾:

【QT入门】Windows平台下 QT的编译过程-优快云博客

【QT入门】VS2019+QT的开发环境配置-优快云博客

【QT入门】VS2019和QT Creator如何添加第三方模块-优快云博客

【QT入门】qmake和cmake的简单区别 

qmake和cmake是两种常用的构建工具,用于自动化构建C++项目,但它们有一些显著的区别:

一、qmake 

  1. qmake是Qt官方提供的构建工具,专门用于构建Qt项目。它使用.pro文件来描述项目的结构和依赖关系,然后生成Makefile或Visual Studio项目文件。qmake相对简单易用,特别适合构建小型Qt项目。

适用范围:

qmake是Qt官方提供的构建工具,主要用于构建Qt项目。
项目描述:使用.pro文件描述项目结构和依赖关系。
生成文件:qmake会生成Makefile或Visual Studio项目文件。
简易性:qmake相对简单易用,适合构建小型Qt项目。
集成性:与Qt Creator集成良好,可以方便地在Qt Creator中使用。

二、cmake

  1. cmake是一个跨平台的构建工具,可以用于构建任何类型的C++项目,不仅限于Qt。cmake使用CMakeLists.txt文件来描述项目的结构和依赖关系,然后生成适合不同构建系统的项目文件,如Makefile、Visual Studio项目文件、Xcode项目文件等。cmake功能更加强大,支持更复杂的项目结构和定制需求。

    适用范围:cmake是一个跨平台的构建工具,适用于各种C++项目,不仅限于Qt。
    项目描述:使用CMakeLists.txt文件描述项目结构和依赖关系。
    生成文件:cmake可以生成适合不同构建系统的项目文件,如Makefile、Visual Studio项目文件、Xcode项目文件等。
    灵活性:cmake功能更加强大,支持更复杂的项目结构和定制需求。
    扩展性:支持通过插件和模块扩展功能,可以满足不同项目的需求。

 三、小结

qmake更适合构建小型Qt项目,简单易用;而cmake更适合构建复杂、跨平台的C++项目,功能更加强大和灵活。选择使用哪种工具取决于项目的需求和个人偏好。

一般来说,没有什么跨平台需求的话,qmake就足够了。

同时,说在最后。代码构建工具各有各的优势,不要过于纠结使用哪种,主要是看当初创建项目的人用哪种构建工具,不使用cmake也没关系,cmake也不是最好的解决方案,例如谷歌的GN,可以实现c++, java, ios项目的跨平台管理,比cmake更厉害,chrome、webrtc、 鸿蒙都是使用GN来构建的。qt项目,没有特殊要求,使用qmake即可。

都看到这里了,点个赞再走呗朋友~

交叉编译实践-Qt应用程序交叉编译【用cmake工具编译】 上篇介绍了交叉编译的基本原理,以及交叉编译一个简单的HelloWorld程序,这篇将介绍如何交叉编译Qt程序。 由于Qt程序依赖的底层以及第三方的相关库太多(比如libGL.so库为OpenGL库,libX11.so库为系统图像库等等),因此在交叉编译时会出现各种问题,下面将其主要的问题归为如下三类: 1. 编译器所依赖的库,在编译链接过程中,找到了宿主机的库了,导致文件格式不对,编译链接不成 阅读详情

相关推荐

VS Code上,QT基于cmake,qmake的构建方法(非常详细)

最近,由于认证了github的学生用户,想在VS Code上,将各类语言开发环境统一起来。而在VS Code上进行QT开发,在找了一圈优快云上的博客后,感觉并不全面,跟着尝试还是会出各种各样的问题,因此,在走通cmake/qmake的QT环境配置后,这里予以记录,便于自己日后查询,也给大家一些参考,能够尽量减小消耗这种配置环境的无用功时间。

qq_38606680的博客 8306

QMake和CMake

详细说明了qmake的语法

hulinhulin的专栏 4874

g++,qmake,cmake区别

一. 不使用构建工具,直接调用编译器来编译 用 cmake 构建Qt工程(对比qmake进行学习) 指定头文件目录,以及需要链接的库 g++ main.cpp -Ie:\Qt\4.7.0\include -o main -Le:\Qt\4.7.0\lib -lQtCore4 二. qmake(需要.pro) qmake的使用(可设置c编译器flag参数) 使用qmake编译QT工程...

qq_33970986的博客 3695

Qmake VS Cmake 对比讲解

Qmake VS Cmake 对比讲解

m0_60259116的博客 1万+

别再怕ADRC调参了!手把手教你用MATLAB/Simulink搞定TD、ESO、NLSEF(附完整参数表)

本文详细解析了ADRC(自抗扰控制)的调参方法,通过MATLAB/Simulink实战演示,帮助工程师快速掌握TD、ESO和NLSEF模块的参数整定技巧。文章提供了完整的参数表和调参指南,解决ADRC调参难题,提升控制系统的鲁棒性和性能。

weixin_30252709的博客 177

c#窗体应用(.NET Framework)项目对Yaml文件进行写入与读取,Yaml数据转换成json

用到的技术与版本准备工作Yaml数据在C#中进行定义对Yaml文件的读取与写入代码的添加窗体控件控制操作写入数据到Yaml文件读取Yaml文件数据Yaml数据转换成json改进——对yaml文件读取时根据yaml文件中的键进行获取,对c#中怎么取名字无关yaml文件中多个数据读取遇到的问题总结的小点参考的文章在对Yaml文件进行读取前,先将Yaml文件中的数据结构在c#中进行定义,以便后面更好的读取。这里对这四个类型进行举例(这里为了想看看这四个类型到Yaml文件的格式是什么样子的)

永远年轻 1587

make makefile cmake qmake都是什么,有什么区别

列表一: 1.gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。 2.当你的程序只有一个源文件时,直接就可以用gcc命令编译它。 3.但是当你的程序包含很多个源文件时,用gcc命令逐个去编译时,你就很容易混乱而且工作量大 4.所以出现了make工具 make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用m

君君的博客 5761

手把手教你逆向分析某里系bx-ua参数(以225版本为例)

本文详细解析了某里系应用bx-ua参数的逆向工程实战方法,重点拆解其三层加密体系(二进制加密、字符替换和Base64编码)。通过工具链配置和实战案例,帮助开发者掌握逆向分析技巧,适用于合法合规的安全研究和加密技术评估场景。

weixin_33220360的博客 411

Qt之QMake编译转换为CMake编译

一、前言 QMake和CMake都是用来控制编译过程的构建系统,最终生成可在选择的编译器环境中使用的本机makefile和工作区。简单来说,QMake和CMake就像类似于作曲,makefile类似于乐谱,最终由编译器完成乐章的演奏。 那么QMake和CMake有什么区别呢? 对于纯Qt项目,QMake更加好用。QMake与QtCreator的相性很好,通过.pro文件指导Qt工程编译,方便又快捷。 但是,如果需要对Qt以外的第三方依赖项进行配置检查,比如一个很大的项目,其中除了Qt的部分子工程外,还有其他

阿清的随手记 1万+

Revit模型转点云全流程:从OBJ导出到CloudCompare点云生成(2020版)

本文详细介绍了将Revit模型转换为点云数据的完整流程,特别针对Revit 2020用户。通过使用OBJ导出插件和开源软件CloudCompare,实现从模型导出、网格采样到生成结构化PCD点云的全过程,并提供了关键参数设置与常见问题解决方案,为BIM与三维数字孪生应用提供技术支持。

oo7890的博客 154

【银河麒麟V10】【桌面】【服务器】系统启动问题

1、如果之前运行好好的,重启后系统报错,一般80%是因为fstab的问题,回想下之前有没有添加过外接存储,修改过/etc/fstab,如果是的话一般是因为存储异常(比如网络存储无法连接,本地存储路径变化)导致系统开机自检失败,导致无法正常启动; 处理方式:进入单用户(单用户进入的几种方式上面有专门文章介绍),修改/etc/fstab,将新增的内容暂时注释掉,然后重启系统,能正常进入系统后再分析失败原因。 ...

桂安俊@KylinOS 3万+

构建Qt应用——QMake与CMake的区别

QMake和CMake是两种广泛应用于跨平台开发的构建工具。QMake由Qt公司开发,专为简化Qt项目的构建过程而设计,能够自动处理不同平台的差异,生成平台特定的构建文件,并深度集成Qt特性,如元对象编译器和资源文件处理。其语法基于键值对,简洁且易于维护,但灵活性在非Qt项目中受限。CMake则由Kitware公司开发,旨在解决跨平台构建问题,适用于大型项目和开源项目,支持模块化配置和自动化构建。其语法为命令式,强调目标为中心的设计,适合复杂项目。CMake的跨平台能力更强,支持多种构建系统和工具链,广泛应

weixin_43484713的博客 2311

基于C++和Qt开发IEC104规约主站调试软件(第二章)

本章节主要讲解iec104主站软件界面设计和从站的连接功能以及部分功能代码的展示。

半青年的博客 858

qmake与CMake区别

特性qmakeCMake本质Qt 项目构建文件生成器跨平台构建系统生成器 (元构建系统)主要领域Qt 项目 (尤其适合简单/纯 Qt 项目)通用 C/C++ 项目 (任何规模、复杂度,强烈推荐用于 Qt 6+)配置文件.pro文件文件核心优势Qt 集成简单,上手快真正的跨平台一致性,功能强大灵活,生态庞大跨平台性较好,但不如 CMake 一致和强大极佳,是其主要设计目标功能范围专注于 Qt 需求,功能相对有限极其丰富,覆盖构建的方方面面依赖管理较弱强大等)学习曲线较平缓较陡峭。

我的博客 1707

FPGA纯Verilog实现I²C主机控制器与EEPROM读写

I²C是一种广泛应用的同步串行总线协议,用于连接微控制器与EEPROM、传感器等低速外设。其核心原理包括开漏结构、主从通信机制、START/STOP时序及ACK/NACK应答流程。技术价值在于硬件资源占用少、布线简洁、支持多从机扩展,特别适合FPGA嵌入式系统中轻量级外设控制。典型应用场景涵盖工业数据存储、配置参数持久化及实时传感器接口。本文基于Xilinx Spartan-6 FPGA,采用纯Verilog HDL实现参数化I²C主机控制器与AT24C02 EEPROM读写验证,深入解析状态机设计、SDA

weixin_33557333的博客 119

从 Integrated Configuration 到 Integration Flow,SAP PI/PO 老配置迁移的一次温和重构

很多还在运行 SAP PI/PO 的系统,Integration Directory 里都积累了不少 Integrated Configuration,也就是日常项目里常说的 ICO。它们可能稳定运行了多年,负责把采购订单、物料主数据、客户主数据、发票、发货通知从一个系统送到另一个系统。问题在于,ICO 这种对象很实用,却不够直观。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 95

Make、Makefile、Cmake、QMake 的区别

简介: make makefile cmake qmake都是什么,有什么区别? 文章目录本博文的简述or解决问题?重要提示:答一(比较写的好):答二(图很好):参考博文:本篇同步博文: 本博文的简述or解决问题? ​ make makefile cmake qmake都是什么,有什么区别? ​ 查了一下好像是编译用的,既然是编译为什么我们不用g++ ja...

7553

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

浅谈Qt的编译方式:qmake/cmake/qbs及qbs被弃用的原因

1、Qbs简介 https://doc.qt.io/qbs/qml-qbsmodules-qbs.html https://blog.youkuaiyun.com/qq_34139994/article/details/98478648 QBS(Qt Build Suite)同 qmake、cmake 之类一样都是构建工具。QBS 号称是新一代的构建工具,比qmake编译速度更快。 和qmake不一样......

$firecat利白的代码足迹$ 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[Qt] 什么是qmake与cmake

CMake是一个跨平台的构建系统工具,用于生成不同平台的本地构建文件(如Makefile、VS工程等),但不直接编译代码。qmake是Qt专用的构建工具,自动处理Qt特有的编译步骤。CMake适用范围更广,扩展性强,已成为现代C++项目的主流选择,Qt6也推荐使用CMake。两者与编译器的关系是:CMake/qmake生成构建规则,make执行编译,编译器完成实际编译工作。Qt Creator可自动生成qmake工程文件,而CMake需手动配置CMakeLists.txt。一个简单的Qt CMake项目需指

2303_79225753的博客 1179

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

在Qt开发环境中qmake和cmake的区别优势

选择qmake还是CMake,主要取决于项目的需求和开发者的熟悉程度。如果你正在开发一个纯Qt项目,或者是一个不需要复杂构建脚本的小型项目,qmake可能是一个更好的选择。反之,如果你的项目需要处理复杂的依赖关系,或者你想要一个在多种编程环境中都能工作的构建系统,那么CMake可能是更好的选择。

gygkhd的博客 2413

Qt开发 | Qmake与CMake | Qt窗口基类 | VS Qt项目与QtCreator项目相互转化 | Qt架构 | Qt学习方法

Qmake和CMake都是构建系统,它们用于自动化编译和构建软件项目的过程。数据容器:QString、QVector、QList、QMap网络模块:Http、TCP、UDP图形视图模块数据库模块程序打包Qt常用控件Qt常用模块:通常Qt GUI项目需要包含:Core、Gui、Widgets这三个Qt学习方法多看Qt文档,自己多写代码测试;学习Qt提供的demo,自己调试,运行,分析;Qt主要是用来做界面开发,要熟悉Qt设计界面的技巧,掌握各种控件的使用,非常熟悉各种布局的实现方案。

zwcslj的博客 2681

QT 实战:Qt6 CMake与qmake全面比较:从入门到项目迁移

本文对比了Qt6开发中CMake与qmake两种构建工具的核心差异。qmake语法简单但功能有限,适合小型Qt项目;CMake配置稍复杂但灵活强大,支持跨平台和复杂项目,是Qt6官方推荐方案。文章通过实际案例展示了两种工具在基础项目、跨平台适配及多文件场景下的配置方法,并提供了从qmake迁移到CMake的实用建议。对于初学者,建议直接学习CMake以适应Qt6发展趋势;老项目维护可暂用qmake,新项目应优先选择CMake以获得更好的扩展性和跨平台支持。

蓝天-智能的专栏 1077

qmake vs cmake

qmake和CMake都是常见的构建工具,虽然它们都支持 Qt 项目的构建,但它们在功能、灵活性和用途上有显著的差异。下面是qmake和CMake的比较,帮助你理解它们各自的优缺点,选择最适合的工具。

weixin_42101997的博客 1402

对比 Qt CMake 与 qmake

Qt 官方已明确转向 CMake,建议新项目优先使用 CMake。

抟土成人祖,炼石补青天。眼中览银河,手可摘星辰。 1624

Qt开发核心工具:CMake与qmake全面解析

本文对比分析了Qt开发中的两种主流构建工具:CMake和qmake。CMake作为跨平台构建系统生成器,通过CMakeLists.txt配置文件生成各平台原生构建文件,支持复杂项目配置和第三方库集成,是Qt6官方推荐工具。qmake作为Qt专属工具,通过.pro文件简化Qt项目配置,但扩展性较弱,正被Qt6逐步淘汰。文章详细展示了两者的配置文件示例、编译流程和核心区别,并提供了完整的Qt CMake项目实战案例,帮助开发者理解构建工具与编译器之间的层级关系。最后强调CMake是现代Qt项目的首选构建工具,建

z5mm6的博客 1448

make, makefile, cmake, qmake 有何区别?

make, makefile, cmake, qmake 有何区别

chencichang的博客 8661
上一篇: 【Qt问题】使用QSlider创建滑块小部件无法显示
下一篇: 【QT入门】VS qt和QtCreator项目的相互转换
从一的
博客等级 码龄5年 1995粉丝 213原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值