QT Creator无法解析一个非常简单的项目

4

我在QT Creator中创建了一个非常简单的项目,*.pro文件如下:

HEADERS += inc\1.h
SOURCES += src\1.cpp

这里是源代码:

// 1.h
const int C = 1;

// 1.cpp
#include "1.h"

int main() {
    return C;
}

QT Creator成功打开了这个“工程”,但无法解析它。F2不能用于C常量,1.h头文件找不到。
请查看描述问题的截图:

Screenshot showing the project structure

最奇怪的是,完全相同的事情似乎在我另一台安装有类似QT SDK 5.0的机器上工作!请问我错在哪里?

1
它应该是 #include "inc/1.h" 吗? - hank
不,我希望不是这样。也许你的意思是 "../inc/1.h" - 这个可以工作,但我需要我的包含文件能够在没有完整路径的情况下被找到。如果我必须指定完整路径,那么为什么我需要在 .pro 文件中加入 "HEADERS" 部分呢? - Aleksei Petrenko
将inc文件夹添加到INCLUDE_PATH中也无效。最奇怪的是相似的另一台计算机可以很好地解析同样的项目。我在一个大项目中遇到了包含和语法解析问题,无法修改#include指令,因此我创建了这个简单的示例来演示该问题。 - Aleksei Petrenko
1
可能完全不相关,但我看到了这个错误,而且项目中没有显示任何源文件。在为当前工具集设置“Qt版本”的正确路径(对我来说是/usr/bin/qmake-qt5)之后,突然一切都出现了。 - jozxyqk
1个回答

9

HEADERS应该列出您自己项目的头文件,就像SOURCES列出源文件一样。

如果您想包含外部头文件,应将它们所在的文件夹添加到INCLUDEPATH中:

INCLUDEPATH += inc

下面的.pro文件在Qt Creator 2.5.0,Qt 4.6.1中完美运行:
QT       += core
QT       -= gui

TARGET = test
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

SOURCES += \
    src/1.cpp

INCLUDEPATH += inc

请尝试使用确切的.pro文件,等待3秒钟进行解析,告诉我是否成功。


我尝试了使用INCLUDEPATH的方法,但在我的电脑上也无法工作。也许这是最新QT中一种奇怪的Heisenbug,我不知道。我将尝试以前的v4 SDK并告诉你) - Aleksei Petrenko
你能编译它吗?在另一台机器上(它可以工作的那台),你也使用Qt Creator 2.6.1吗? - Tim Meyer
1
非常感谢您的建议,我尝试编译它但失败了,然后我意识到我的QT“工具包”(不管它是什么)没有默认编译器。编译器肯定应该用于解析源代码,所以我认为这是根本原因。现在一切运作得非常完美。 - Aleksei Petrenko
我没有尝试编译项目,因为我只想使用Creator来处理使用外部构建系统的大型项目。 - Aleksei Petrenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接