我是Visual Studio中的新手(使用的是2005版)。我遇到了一些我无法弄清楚的命名空间问题。
我正在尝试创建一个静态库,稍后我将链接到一个应用程序。
所以,我有一个带有以下代码的
的XXX.h文件#ifndef _XXX_X_H
#define _XXX_X_H
namespace LLL_NWK
{
void lllInit();
}
#endif
我在XXX.c中包含XXX.h,代码类似于
#include "XXX.h"
using namespace LLL_NWK;
void lllInit()
{
}
但是,当我构建库时遇到以下错误
error C2061: syntax error : identifier 'LLL_NWK'
error C2059: syntax error : ';'
error C2449: found '{' at file scope (missing function header?)
error C2059: syntax error : '}'
我无法找出导致此错误的原因。希望得到一些帮助和指点。
答案 0 :(得分:2)
首先,using namespace LLL_NWK
不合适。您正在void lllInit()
声明并定义<{1}}外部的函数namespace LLL_NWK
。您需要将定义放在命名空间内,可以这样做:
void LLL_NWK::lllInit()
{
}
或者像这样:
namespace LLL_NWK
{
void lllInit()
{
}
}
其次,确保将代码编译为C ++ 。
答案 1 :(得分:0)
C编译器不支持该代码 - 确保将文件名重命名为.cpp而不是.c。在这种情况下,不支持命名空间。请参阅此帖子:Namespaces in C