1

在此处输入图像描述

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

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

4

2 回答 2

2

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

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

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

于 2012-10-18T21:58:41.800 回答
0

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

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

在Windows7上的My Qt 4.8.1, 4.8.3with中,但在每种情况下都出现错误:MinGWQtCreator 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'

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

于 2012-10-13T12:18:17.743 回答