我有一些以前编写的标头,我想将它们包括在我的Qt项目中。不复制原位怎么办?
用“添加现有文件...”添加它们后,似乎无法#include我的标头。#include“ header.h”或#include“ fullpath / header.h”均无效。
您必须INCLUDEPATH在.pro文件中添加一个:
INCLUDEPATH += ...
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用#include <...>语法(不是"...")包含标头,因为之后编译器会在包含路径中而不是项目的源文件夹即当前工作目录中搜索标头。
在包含路径中使用标头的相对路径,而不要在项目的源文件夹中使用标头的相对路径。
#include <header.h>
Run Code Online (Sandbox Code Playgroud)
顺便说一下,仅当使用Qt元对象系统的标头为Qt标头时,才需要将标头添加到项目中。定义QObject派生类的对象传递给moc,这就是Qt项目需要指定标头的原因。真正的编译过程不需要知道项目中的头文件(当它看到#include指令时就包括它们)。