语义检查在Qt Creator 2.5中不起作用

时间:2012-10-10 13:56:11

标签: ide qt-creator

enter image description here

对于这个明显错误的代码示例,我没有收到错误。相反,qt creator将var标记为未使用的变量。是否有可能解决这种奇怪的行为?我希望语义检查有效。

更新 我一直在谈论即时语义检查。大多数IDE会在您键入时分析代码,并且会显示高亮度错误。 Qt Creator似乎可以动态地执行一些代码分析(因为语法highliting显示不同的类型,虚函数和其他东西),但它根本不会出现错误。

2 个答案:

答案 0 :(得分:2)

Qt Creator使用的代码模型相当不错,但并不是基于每个编译单元的完整抽象语法树。有关它的一些信息在此Qt博客文章中提供:

http://blog.qt.digia.com/2011/10/19/qt-creator-and-clang/

AFAIK,当前的代码模型允许Qt Creator进行语义突出显示,重构,显示类型层次结构等,但不允许对潜在的编译错误(如您的)进行完整的动态检查。由于代码的语法是正确的,因此Qt Creator不会显示错误。

答案 1 :(得分:0)

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

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

在我的Qt 4.8.1, 4.8.3上使用MinGW在Windows7上QtCreator 2.5.2,但在每种情况下都出错:

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'

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