转自:http://blog.csdn.net/lyc_daniel/article/details/12103189
利用Qt Creator开发程序时,需要包含利用#include来添加头文件。
大家都知道,#include <>用于包含标准库头文件,路径在安装软件的include文件夹下;#include ""用于包含用户自定义的,路径是在用户当前目录下(或自建工程目录下)。
对于后者,路径比较直观,容易理解。如#include "lyc/daniel.h",路径在当前目录的lyc文件夹下。(文件包含是可以嵌套的。)
下面重点追溯一下Qt的标准库头文件的路径包含情况。
1.新建一个GUI工程,可以看到在mainwindow.h文件中有#include <QMainWindow>
2.在Qt的include路径下,可以看到里面是文件夹,而不是文件,这是为什么呢?
3.打开工程里的pro文件,便可知道已经包含了二级目录QtCore和QtGui
即添加了include里的两个文件
4.在include文件夹下搜索QMainWindow(注意不带.h),可以看到在include\QtGui目录下找到了QMainWindow
5.用文本打开QMainWindow,可以看到
6.再打开QtGui路径下的qmainwindow.h文件(与QMainWindow在同一路径)
可以看到,路径发生了跳转,从当前路径往上跳两个路径,再从src文件下依次找到qmainwindow.h文件
7.打开qmainwindow.h文件,可以看到
至此,可以看出找到了目标头文件。
在进行编译的时候,该文件内的代码会被拷贝到#include <QMainWindow>处
举例:
在头文件中QT项如果没有加network:
在应用程序包含<QtNetwork>以及<QUdpSocket>等子类头文件,都会提示没有此文件;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2018-06-04 微软开源rDSN分布式系统开发框架
2018-06-04 腾讯互娱开源分布式开发框架Pebble
2018-06-04 介绍一个开源的 C++ 开发框架 openFrameworks 。
2014-06-04 【Node.js 自己封装的库 http_parse, libuv】
2014-06-04 开源免费的C/C++网络库(c/c++ sockets library)
2014-06-04 C++开源跨平台类库集