数据结构重复定义的问题

czaoth 2008-04-15 11:36:42
我的工程中使用到了2个不同的库,每个库的头文件里面都定义了uint32这个数据结构,
工程编译的时候提示error C2872: “uint32” : 不明确的符号,请教怎么解决这个问题,谢谢!!
...全文
244 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
野男孩 2008-04-15
  • 打赏
  • 举报
回复
嗯,namespace,用了的都说好~

ps:编译器居然能报中文错误。。。。
laolaoliu2002 2008-04-15
  • 打赏
  • 举报
回复
怎么手那么快,等我打开一看已经被回答了,重复一下:
用namespace
Supper_Jerry 2008-04-15
  • 打赏
  • 举报
回复
命名空间
Supper_Jerry 2008-04-15
  • 打赏
  • 举报
回复
命名空间
独孤过儿 2008-04-15
  • 打赏
  • 举报
回复
我的直觉判断,两个uint32应该是定义成一样的,最简单的方法就是,去掉其中的一个!

如果不行,那就用宏在代码中显示的制定包含哪个头文件,而不是直接的把两个都include进来...

或者用命名空间重新封装一下,总之解决方案有N种...
czaoth 2008-04-15
  • 打赏
  • 举报
回复
应该是重复定义错误
完整错误提示是这样的
error C2872: “uint32” : 不明确的符号
可能是“d:\base\tu_types.h(67) : Uint32 uint32”
或 “d:\video\\include\Platform.h(214) : VideoPlay::uint32”
ryfdizuo 2008-04-15
  • 打赏
  • 举报
回复
用名字空间是个办法,
hai040 2008-04-15
  • 打赏
  • 举报
回复
是define的话,namespace可以
typedef的话,链接还是会报错吧
北极猩猩 2008-04-15
  • 打赏
  • 举报
回复
如果二者不同,可以使用namespace分别将二者用不同的包装起来。
namespace N1 {
#include "header1.h"
}
namespace N2 {
#include "header2.h"
}
Treazy 2008-04-15
  • 打赏
  • 举报
回复
如果这2个结构是一致的话,那建议直接包含一个有这个数据结构的头文件

如果不是一个结构,那需要分辨好这2个结构使用的对象,头文件包含的时候需要注意!

你现在是无法解析的符号,那说明是你头文件没包含好

如果是重定义,那可能是包含了多个头文件
babyvox1999 2008-04-15
  • 打赏
  • 举报
回复
那编译器应该报重定义才对。。。
北极猩猩 2008-04-15
  • 打赏
  • 举报
回复
error C2872: “uint32” : 不明确的符号
可能是“d:\base\tu_types.h(67) : Uint32 uint32”
或 “d:\video\\include\Platform.h(214) : VideoPlay::uint32”
^^^^^^^^^^^^^^^^^^^^^

从错误信息看来VideoPlay::uint32应该已经是在一个namespace之下了啊,是不是楼主不分青红皂白就use namespace VideoPlay了啊

如果是的话,取消掉他,在需要的地方使用VideoPlay::uint32
醉心编码 2008-04-15
  • 打赏
  • 举报
回复
如果这2个结构是一致的话,那建议直接包含一个有这个数据结构的头文件

如果不是一个结构,那需要分辨好这2个结构使用的对象,头文件包含的时候需要注意!

你现在是无法解析的符号,那说明是你头文件没包含好

如果是重定义,那可能是包含了多个头文件

如果二者不同,可以使用namespace分别将二者用不同的包装起来。
namespace N1 {
#include "header1.h"
}
namespace N2 {
#include "header2.h"
}

p0303230 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 Supper_Jerry 的回复:]
命名空间
[/Quote]
p0303230 2008-04-15
  • 打赏
  • 举报
回复
是不是头文件没加
#ifndef
#define
#endif
tigerlhp 2008-04-15
  • 打赏
  • 举报
回复
学习...
babyvox1999 2008-04-15
  • 打赏
  • 举报
回复
人家是库,你修改什么代码- -!
修改个头文件又没用的。。。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧