编译器找不到.h文件(代码块)

时间:2018-11-06 17:22:37

标签: c++ qt codeblocks header-files

我正在尝试在代码块中包含一些库,但是,当我将.h文件的路径添加到搜索目录(例如C:\ Qt \ 5.1.1 \ mingw48_32 \ include \ QtNetwork)时,似乎可以识别主文件中的文件,我认为这是由于这样的事实,即它们在主文件中被这样包含(例如)#include“ qtcpsocket.h”,而在.h文件中它们被包含为(例如)#include <QtNetwork/qabstractsocket.h>

除了其中包括文件夹所在的事实以外,主要区别是什么?为什么可能不起作用?并需要做些什么来改变它?

我还要确定文件在文件夹中。 如果有帮助,这里有一些代码片段

文件位置

错误

1 个答案:

答案 0 :(得分:0)

例如,如果您的源代码包含

#include <QtNetwork/qabstractsocket.h>

然后您要求预处理器查找并包含一个名为

的文件
QtNetwork/qabstractsocket.h

(或者,如果您使用的是Windows,则为QtNetwork\qabstractsocket.h

在其搜索目录之一中。

如果您已指定编译器搜索目录:

C:\Qt\5.5.1\mingw48_32\include\QtNetwork
C:\Qt\5.5.1\mingw48_32\include\QtCore

然后预处理器将在第一个目录中搜索:

C:\Qt\5.5.1\mingw48_32\include\QtNetwork\QtNetwork\qabstractsocket.h

不存在。它将在第二个目录中搜索:

C:\Qt\5.5.1\mingw48_32\include\QtCore\QtNetwork\qabstractsocket.h

也不存在。

通常的方法是指定编译器搜索目录:

C:\Qt\5.5.1\mingw48_32\include

,然后在您的代码中编写#include <...>指令,例如:

#include <QtNetwork/...>
#include <QtCore/...>