Qt/C++ 基础知识

编程入门 行业动态 更新时间:2024-10-23 18:24:58

Qt/C++ <a href=https://www.elefans.com/category/jswz/34/1769428.html style=基础知识"/>

Qt/C++ 基础知识

阅读总结·················································来源:


IDE:集成开发环境(Integrated Development Environment)是用于提供程序开发环境的应用程序,一般包括代码编辑器,编译器,调试器,图形用户界面等工具,集成了代码编写功能,分析功能,编译功能,调试功能等。是现在代码工具的统一标准。

msvc:微软(MS)的VC运行库,使用了微软的运行库,大大减少了软件的编码量,却提高了兼容性。但运行的时候,需要这些运行库。
mingw:是Minimalist GNU for Windows的缩写,是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合。

gcc:GNU Compiler Collection,意思是GNU编译器套件
当有少量的程序,可以直接使用gcc编译,但是程序复杂的话,工作量就会变得巨大,这时候出现了make工具。

make:make工具可以看成是一个智能批处理工具,但是实质是通过调用makefile文件中的指定命令来调用gcc去编译程序,这样就变得有序了
但是需要满足基于越来越多的跨平台编写程序,makefile只能通过人工修改,工作量可能巨大。这时候出现了CMake。

cmake:cmake工具通过用户使用IDE运行后生成的CMakeLists.txt文件来更简单地生成makefile文件,生成的makefile文件就可以提供给make工具使用,当然cmake工具可以跨平台生成对应平台能用的makefile文件,不再用人工修改。

Qt:Qt是跨平台C++图形用户界面应用程序开发框架。GUI和非GUI程序都可开发,简单地说这是C++的第三方库,Qt是开发跨平台的GUI应用程序的利器。

QT专有的编译器
1)moc编译器:The Meta-Object Compiler
2)uic编译器:User Interface Complier
这两个编译器会重新翻译我们所写的代码。这时候问题来了:在进行程序编译前,就调用moc和uic对Qt的源文件进行预处理,后面再调用编译器就不行了。

这种说法行不通,Qt公司的制定特殊规则来实现Qt Creator的价值,制造出来了qmake,(这时候你可以对照前文的cmake来看这段文字)。

再说qmake之前,你还需要了解Qt Creator是什么。。。
Qt Creator就是Qt公司制作的集成开发环境,也就叫Qt IDE。

qmake:qmake工具首先跟cmake一样用来生成专用的makefile文件,专用的makefile文件自动智能地调用moc和uic对我们所写的代码进行预处理和编译。而qmake是根据工程文件(.pro)来生成makefile文件,.pro文件是Qt Creator自动生成的,你也可以对该文件进行操作。

注:由于qmake很简单很好用又支持跨平台,而且是可以独立于它的IDE,所以你也可以用在非Qt工程上面,照样可以生成普通的makefile,只要在pro文件中加入CONFIG -= qt 就可以了。
CMake同样也是独立的。同样也支持Qt程序。但是cmake功能比qmake强大。

说到这儿,我们不多不少地了解一下 .pro(Qt)文件、CMakeLists.txt文件、 makefile文件、moc编译器、uic编译器 能干些什么,或能生成什么文件?

(1).pro(Qt)工程文件:很简单的文件格式,可读性很高,模块添加很简单,是qmake执行的所需文件,qmake根据.pro文件生成makefile文件
(2)CMakeLists.txt文件:cmake根据CMakeLists.txt文件生成makefile文件
(3)makefile文件:我们就按 Qt 可以使用的 make 工具来说,makefile文件定义了一系列的规则,些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。makefile就像一个Shell脚本一样。
(4)moc编译器(元对象编译器):moc_class,(能生成moc_.cpp、moc_.o(.o是二进制文件))
Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件。如果它发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个 C++ 源文件。这个源文件中包含了 Q_OBJECT 宏的实现代码。这个新的文件名字就是在原文件名前加 moc_

只要用了信号槽,就需要写Q_OBJECT

(5)uic编译器:(通过 .ui(XML文件) 能生成 ui_.h 供程序使用)
(6)在Qt环境下的cmake与qmake、debug与release对比
(7)C++ RTTI

更多推荐

Qt/C++ 基础知识

本文发布于:2023-07-28 15:48:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1240110.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基础知识   Qt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!