0

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

我无法弄清楚这个错误的原因。将不胜感激一些帮助和指点。

4

2 回答 2

2

一是using namespace LLL_NWK这里不合适。您正在void lllInit() 声明和定义. namespace LLL_NWK您需要将定义放在命名空间内,可以这样完成:

void LLL_NWK::lllInit()
{
}

或像这样:

namespace LLL_NWK
{
   void lllInit()
   {
   }
}

其次,确保将代码编译为 C++

于 2013-08-14T16:35:00.227 回答
0

C 编译器不支持该代码 - 确保将文件名重命名为 .cpp 而不是 .c。在这种情况下,不支持命名空间。请参阅这篇文章:C 中的命名空间

于 2013-08-14T16:36:46.487 回答