转自: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),可以看到在includeQtGui目录下找到了QMainWindow
5.用文本打开QMainWindow,可以看到
6.再打开QtGui路径下的qmainwindow.h文件(与QMainWindow在同一路径)
可以看到,路径发生了跳转,从当前路径往上跳两个路径,再从src文件下依次找到qmainwindow.h文件
7.打开qmainwindow.h文件,可以看到
至此,可以看出找到了目标头文件。
在进行编译的时候,该文件内的代码会被拷贝到#include <QMainWindow>处
举例:
在头文件中QT项如果没有加network:
在应用程序包含<QtNetwork>以及<QUdpSocket>等子类头文件,都会提示没有此文件;