命名空间编译问题

时间:2013-08-14 16:23:00

标签: c++ visual-c++ namespaces visual-studio-2005 static-libraries

我是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 : '}'

我无法找出导致此错误的原因。希望得到一些帮助和指点。

2 个答案:

答案 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