在类函数和命名空间之间重新声明符号
redeclared symbol between class function and namespace
我的makefile中有两个头文件。
一个有一个函数符号"uint32_t util::hash(const char*)",
另一个具有命名空间符号"命名空间 util::hash { }"
G++ 抱怨:
StringUtil.h:24: error: ‘uint32_t util::hash(const char*)’ redeclared as different kind of symbol
../util/hash/Hash_Interface.h:8: error: previous declaration of ‘namespace util::hash { }’
这两个文件来自其他库,所以我不能更改名称。如何解决?
您可以将其中一个头文件包含放在命名空间中,例如
namespace foo
{
#include "some_file.h"
}
现在,"some_file.h"
头文件中的所有符号都位于 foo
命名空间中。
相关文章:
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- 函数指针给我"重新声明为不同类型的符号"错误
- 用 Q_DECLARE_METATYPE 声明无符号的 char[]
- 重复符号 --- 定义和声明之间的差异
- 在 Cpp 标头中声明的常量变量应具有多少个符号条目
- 在C++中声明多维浮点或无符号动态数组
- 在 cpp 正文中声明方法时未定义的符号
- 尝试使用 std::函数(未定义的符号)声明模板化类状态时出现链接错误
- 错误:"int sqlite3_open"重新声明为不同类型的符号"
- 由四个C++声明符号组成的整个组的名称
- 前向声明导致"找到一个或多个多重定义的符号"?
- 方法声明 c++ 后的引用符号
- 使用无符号字符和字符串作为函数声明
- C++模板,不同的声明和定义,链接器无法解析符号
- 在类声明中定义静态变量时未解析的外部符号
- 声明表变量时未解析的外部符号
- OpenCV 符号未在此范围内声明
- 在类函数和命名空间之间重新声明符号
- 如何使GCC报告未声明符号的每次出现
- 在头文件中声明符号常量而不初始化