我正在尝试在代码块中包含一些库,但是,当我将.h文件的路径添加到搜索目录(例如C:\ Qt \ 5.1.1 \ mingw48_32 \ include \ QtNetwork)时,似乎可以识别主文件中的文件,我认为这是由于这样的事实,即它们在主文件中被这样包含(例如)#include“ qtcpsocket.h”,而在.h文件中它们被包含为(例如)#include <QtNetwork/qabstractsocket.h>
。
除了其中包括文件夹所在的事实以外,主要区别是什么?为什么可能不起作用?并需要做些什么来改变它?
我还要确定文件在文件夹中。 如果有帮助,这里有一些代码片段
文件位置
错误
答案 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/...>