我知道这是一个非常常见的问题,但我还没有找到关于以下问题的全面答案。 我在Windows 8.1上运行Qt 5.4.1 MSVC2013构建。 以下是我的项目文件:
这是我的.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文件中,否则我无法在mainview.h
文件中包含main.cpp
。
为什么呢?不应该HEADERS += Views/mainview.h
足够吗?
答案 0 :(得分:3)
如果你以这种方式包含头文件:
#include "mainview.h"
然后是的,你需要添加包含路径,因为编译器(不是IDE)不知道mainview.h在哪里。 否则,您需要指定文件的相对路径,例如:
#include "Views/mainview.h"
答案 1 :(得分:0)
Documentation并不是说HEADERS用于指定编译器的包含路径。 HEADERS用于生成依赖关系信息并检查moc是否必要。
答案 2 :(得分:0)
如果将以下命令添加到.pro
文件,则可以编译它。
INCLUDEPATH += ...path/Views/