编译ACE_TAO库的过程中遇到的一些问题+vxworks镜像组件定制+Relocation value does not fit in 26 bits解决办法

编译环境

  • 操作系统:windows7
  • 工具:ACE+TAO_2.0a版本源码、workbench_3.3、ARMARCH7diab编译器

编译过程中遇到的问题

  编译ACE_TAO库的方法我就不介绍了,在网上可以找到很多介绍。这里主要讲述我在编译过程遇到的一些问题以及解决办法,我遇到的问题主要有以下3个:
  1、编译错误;
  2、将编译后的库加载到vxworks_6.9镜像中时报”Relocation value does not fit in 26 bits”错误;
  3、将编译后的库加载到vxworks_6.9镜像中时有两个符号表找不到,分别是”log2”和”_d_ulltod”;

一、编译错误

  在编译过程中,一共遇到了7个error,有几个问题我没有找到正确的解决方法,目前只是让编译通过了,如果有人知道怎么解决,还请在评论中回复下,谢谢。下面就列举这7个错误:

  1、ACE_wrappers\ace\TSS_T.cpp文件第357行,所报错误为传入的参数过多,TSS_T.cpp中源代码如下图所示:
这里写图片描述
可以看到在ACE_Thread::Keycreate()中传入了3个参数,而查找ACE_Thread::Keycreate()的声明发现该函数只有2个参数,在TSS_T.cpp中传入的第三个参数(void*)this是多余的,所以将(void*)this这个参数去掉即可。

  2、ACE_wrappers\ace\Message_Queue_Vx.inl文件第14行,所报错误为类型不匹配,源码如下:
这里写图片描述
这里的问题是类型转换出错了,我现在改为函数直接return reinterpret_cast (tail_);

  3、ACE_wrappers\protocols\ace\Inet\Sock_IOStream.cpp文件86行,报rdbuf()最初始类的基类没有set_interceptor()成员函数,源码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值