Ide 语义检查不';t在Qt Creator 2.5中工作

Ide 语义检查不';t在Qt Creator 2.5中工作,ide,qt-creator,Ide,Qt Creator,对于这个明显错误的代码示例,我没有发现错误。相反,qt创建者将var标记为未使用的变量。有可能修复这种奇怪的行为吗?我想要语义检查工作 更新: 我一直在谈论即时语义检查。大多数IDE都会在您键入时分析代码,以及highlite错误。Qt Creator似乎在进行一些代码分析(因为语法highliting显示不同的类型、虚拟函数和其他内容),但它一点也不显示错误。非常奇怪的行为。我试图编译这样的代码: #include <iostream> using namespace std; i

对于这个明显错误的代码示例,我没有发现错误。相反,qt创建者将var标记为未使用的变量。有可能修复这种奇怪的行为吗?我想要语义检查工作

更新:
我一直在谈论即时语义检查。大多数IDE都会在您键入时分析代码,以及highlite错误。Qt Creator似乎在进行一些代码分析(因为语法highliting显示不同的类型、虚拟函数和其他内容),但它一点也不显示错误。

非常奇怪的行为。我试图编译这样的代码:

#include <iostream>
using namespace std;
int main()
{
    UndefinedType val;
    cout<<"Test"<<endl;
    return 0;
}

请提供有关构建环境的更多信息。

Qt Creator使用的代码模型非常好,但不是基于每个编译单元的完整抽象语法树。Qt博客文章中提供了一些相关信息:


顺便说一句,当前的代码模型允许QtCreator进行语义高亮显示、重构、显示类型层次结构等,但不允许对潜在的编译错误(如您的错误)进行完整的动态检查。由于代码的语法正确,Qt Creator不会显示错误。

当然是。这不是编译器问题,这是IDE问题。在编译之前,许多IDE会在您键入代码时显示错误。为了进行比较,KDevelop正是这样做的,它在“UndefinedType”下绘制波浪形下划线,当您移动鼠标光标时,它会显示带有错误消息的poupup。这是非常基本的功能。QtCreator做了一些语义分析,这增强了语义语法的高度化,它显示未使用的变量,但不显示错误。。我明白了。。真的,没有突出显示。
main.cpp: In function 'int main()':
main.cpp:7:5: error: 'UndefinedType' was not declared in this scope
main.cpp:7:19: error: expected ';' before 'val'