Qt编译器找不到头文件

Qt compiler cannot find the header file

我知道这是一个很常见的问题,但我还没有找到关于以下问题的全面答案。 我在 Windows 8.1 上安装了 Qt 5.4.1 MSVC2013 build 运行。 下面是我的项目文件:

这是我的 .pro 文件的样子:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Vfp
TEMPLATE = app

QMAKE_CXXFLAGS = - std=c++11

SOURCES += main.cpp\
        Views/mainview.cpp

HEADERS  += Views/mainview.h

FORMS    += Views/mainview.ui

问题是,除非我将 INCLUDEPATH += Views/ 添加到 .pro 文件,否则我无法在 main.cpp 文件中包含 mainview.h

为什么? HEADERS += Views/mainview.h 还不够吗?

如果您以这种方式包含头文件:

#include "mainview.h"

那么是的,您需要添加包含路径,因为编译器(不是 IDE)不知道 mainview.h 在哪里。 否则,您需要指定文件的相对路径,如:

#include "Views/mainview.h"

Documentation 并没有说 HEADERS 用于指定编译器的包含路径。 HEADERS用于生成依赖信息,检查是否需要moc。

如果您将以下命令添加到 .pro 文件中,您将能够编译它。

INCLUDEPATH += ...path/Views/