为啥我会收到命名空间标识符错误?
Posted
技术标签:
【中文标题】为啥我会收到命名空间标识符错误?【英文标题】:Why am I getting a namespace identifier error?为什么我会收到命名空间标识符错误? 【发布时间】:2014-08-20 17:28:27 【问题描述】:我正在使用 Keil uVision,但我不断收到此错误:
C:\Keil_v5\ARM\ARMCC\bin\..\include\rw/_defs.h(781): error: #20:
identifier "namespace" is undefined
什么会导致这个错误?命名空间不是自动定义的吗?
【问题讨论】:
我的预感是您为您的 C++ 程序使用了 C 编译器。 C 中没有命名空间。 你做了什么来得到这个错误?更多细节会很棒......什么编译器?什么系统?等等…… 我在很多地方都看到了这个答案,但我的文件是 .cpp 文件 keil不是c++编译器吗? @Csq @user3729617 如果您能展示一个最小的示例程序和您用于编译的命令行选项,将会有所帮助。 【参考方案1】:看起来您正在对 C++ 代码使用 C 编译 - 检查编译器选项。
在 C++ 中 namespace
是保留字,但在 C 中不是,因此编译器会尝试将其解释为 标识符 而不是关键字 - 这当然在语法上毫无意义到 C 编译器。
【讨论】:
【参考方案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
^
Ideone link
【讨论】:
以上是关于为啥我会收到命名空间标识符错误?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我会收到此错误? “[variable] 没有命名类型”在 C++ 中用于 std::string 数组,即使它已被包含并且在同一范围内