2015-03-02 370 views
0

我知道這是一個相當普遍的問題,但我還沒有找到關於以下問題的全面答案。 我有Qt 5.4.1 MSVC2013構建在Windows 8.1上運行。 這裏是我的項目文件一看:Qt編譯器找不到頭文件

enter image description here

這裏是我的.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夠了嗎?

回答

3

如果你包括頭文件是這樣的:

#include "mainview.h" 

然後是的,你需要添加包含路徑,因爲編譯器(而不是IDE)不知道在哪裏mainview.h是。 否則,你需要指定該文件的相對路徑,如:

#include "Views/mainview.h" 
+0

那麼,編寫'HEADERS + = Views/mainview.h'有什麼意義? – nicks 2015-03-02 12:11:21

+2

看起來像是將它添加到該項目視圖的文件列表 – 2015-03-02 12:12:28

+0

好吧,在進一步閱讀之後,不僅僅是項目視圖。 qmake將它用於自己的解析,所以基本上用於項目編譯管理,有點像makefile。但是你仍然需要添加相對路徑來包含指令,因爲編譯器本身需要它。 – 2015-03-02 12:16:46

0

Documentation不說,headers是用於指定include路徑到編譯器。 HEADERS用於生成依賴信息並檢查moc是否必要。

0

如果您將以下命令添加到.pro文件,您將能夠編譯它。

INCLUDEPATH += ...path/Views/