对于这个明显错误的代码示例,我没有收到错误。相反,qt creator将var标记为未使用的变量。是否有可能解决这种奇怪的行为?我希望语义检查有效。
更新 我一直在谈论即时语义检查。大多数IDE会在您键入时分析代码,并且会显示高亮度错误。 Qt Creator似乎可以动态地执行一些代码分析(因为语法highliting显示不同的类型,虚函数和其他东西),但它根本不会出现错误。
答案 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'
请提供有关构建环境的更多信息。