编译器找不到 .h 文件(代码块)
Compiler cannot find .h files (code blocks)
我试图在代码块中包含一些库,但是当我将 .h 文件的路径添加到搜索目录时(示例 C:\Qt.1.1\mingw48_32\include\QtNetwork) ,它似乎只识别主文件中的那些,我认为这是因为在主文件中它们是这样包含的(例如)#include "qtcpsocket.h",而在 .h 文件中它们包含为(例如)#include <QtNetwork/qabstractsocket.h>
。
除了包含所在文件夹外,主要区别是什么?为什么它可能不起作用?它需要做什么来改变它?
还有一件事我确定文件在文件夹中。
如果有帮助,这里有一些代码片段
文件位置
错误
如果您的源代码包含,例如
#include <QtNetwork/qabstractsocket.h>
然后您请求预处理器查找并包含一个名为
的文件
QtNetwork/qabstractsocket.h
(或者,QtNetwork\qabstractsocket.h
,如果你在 Windows,就这样)
在其搜索目录之一中。
如果您指定了编译器搜索目录:
C:\Qt.5.1\mingw48_32\include\QtNetwork
C:\Qt.5.1\mingw48_32\include\QtCore
然后预处理器将在第一个目录中搜索:
C:\Qt.5.1\mingw48_32\include\QtNetwork\QtNetwork\qabstractsocket.h
不存在。它将在第二个目录中搜索:
C:\Qt.5.1\mingw48_32\include\QtCore\QtNetwork\qabstractsocket.h
也不存在。
通常的方法是指定编译器搜索目录:
C:\Qt.5.1\mingw48_32\include
并在您的代码中编写您的 #include <...>
指令,例如:
#include <QtNetwork/...>
#include <QtCore/...>
我试图在代码块中包含一些库,但是当我将 .h 文件的路径添加到搜索目录时(示例 C:\Qt.1.1\mingw48_32\include\QtNetwork) ,它似乎只识别主文件中的那些,我认为这是因为在主文件中它们是这样包含的(例如)#include "qtcpsocket.h",而在 .h 文件中它们包含为(例如)#include <QtNetwork/qabstractsocket.h>
。
除了包含所在文件夹外,主要区别是什么?为什么它可能不起作用?它需要做什么来改变它?
还有一件事我确定文件在文件夹中。 如果有帮助,这里有一些代码片段
文件位置
错误
如果您的源代码包含,例如
#include <QtNetwork/qabstractsocket.h>
然后您请求预处理器查找并包含一个名为
的文件QtNetwork/qabstractsocket.h
(或者,QtNetwork\qabstractsocket.h
,如果你在 Windows,就这样)
在其搜索目录之一中。
如果您指定了编译器搜索目录:
C:\Qt.5.1\mingw48_32\include\QtNetwork
C:\Qt.5.1\mingw48_32\include\QtCore
然后预处理器将在第一个目录中搜索:
C:\Qt.5.1\mingw48_32\include\QtNetwork\QtNetwork\qabstractsocket.h
不存在。它将在第二个目录中搜索:
C:\Qt.5.1\mingw48_32\include\QtCore\QtNetwork\qabstractsocket.h
也不存在。
通常的方法是指定编译器搜索目录:
C:\Qt.5.1\mingw48_32\include
并在您的代码中编写您的 #include <...>
指令,例如:
#include <QtNetwork/...>
#include <QtCore/...>