Chinaunix首页 | 论坛 | 博客
  • 博客访问: 246198
  • 博文数量: 35
  • 博客积分: 198
  • 博客等级: 入伍新兵
  • 技术积分: 443
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-28 10:30
文章分类

全部博文(35)

文章存档

2015年(5)

2014年(14)

2013年(8)

2012年(7)

2011年(1)

我的朋友

分类: C/C++

2014-09-18 11:25:40

编译一段程序,编译过程中报错
gcc -c srkdb.c  -I/krw/dev/src/include
In file included from /krw/dev/src/include/kspstat.h:17,
                 from /krw/dev/src/include/kspmap.h:18,
                 from /krw/dev/src/include/srkdb.h:3,
                 from srkdb.c:3:
/krw/dev/src/include/ksptype.h:17: error: two or more data types in declaration specifiers
/krw/dev/src/include/ksptype.h:17: warning: useless type name in empty declaration
make: *** [srkdb.o] Error 1

网上有结论说是缺少分号造成,但是根据提示,说是有两种或多种类型在声明的标识符中,经过检查,发现有两处冲动代码是这样定义的:

  1. //ksptype.h 17
  2. typedef char BOOL ;

  3. //odbcinst.h
  4. #define BOOL    int

原来是定义了相同的BOOL类型冲突导致的,在引用第三方库的同时,有些基础类型定义容易引起冲突,对于已经成规模的产品代码不容易修改,如果项目代码刚开始,重新定义新的类型还可以调整,到了后期发现这种问题就麻烦多了, 最好在项目验证阶段,就去完成相关验证工作,如果后期万一有冲突,那就使用c++开发吧,通过命名空间修饰避免这种问题。

阅读(5023) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~