我正在使用Keil uVision并且我一直收到此错误:
C:\Keil_v5\ARM\ARMCC\bin\..\include\rw/_defs.h(781): error: #20:
identifier "namespace" is undefined
什么可能导致此错误?是不是自动定义了命名空间?
答案 0 :(得分:3)
看起来您正在使用C ++编译C ++代码 - 检查编译器选项。
在C ++中namespace
是一个保留字,但不在C中,因此编译器会尝试将其解释为标识符而不是关键字 - 这当然会成为语法上对C编译器有意义。
答案 1 :(得分:2)
您没有公开许多细节,但我的预感是您使用C编译器来完成C ++程序。 C中没有名称空间。
我可以用这个程序产生类似的消息:
namespace test {
}
输出:
$ gcc test.c
test.c:1:1: error: unknown type name 'namespace'
namespace test {
^
test.c:1:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{
' token
namespace test {
^