|
|
- [求助]vxworks下重载new和delete的链接错误
作者:baoguochao 时间:2008-8-28 22:23:34
gcc编译器,版本2.96,重载了new、new[]和delete、delete[],ppc603的BSP,链接的时候会和系统的libgnucplus.a有冲突,输出的错误信息大概是下面的样子
XXXX.a : multiple defination : __buildin_new()
first defined here : libgnucplus.a (_x_gnu_newnt.o)
XXXX.a : multiple defination : __buildin_delete()
first defined here : libgnucplus.a (_x_gnu_deletent.o)
XXXX.a : multiple defination : __buildin_vec_new()
first defined here : libgnucplus.a (_x_gnu_vec_new.o)
XXXX.a : multiple defination : __buildin_vec_delete()
first defined here : libgnucplus.a (_x_gnu_vec_deletent.o)
重载new和delete的文件就是上面的那个 XXXX.a,并且这个 XXXX.a放在 ldppc 的静态链接库的最前面,还是不行
打开libgnucplus.a能看到符号表里面有这些系统自己的实现。打开 XXXX.a,也能看到同样的符号。确实是有冲突,但我想这种冲突应该能通过ldppc的参数这只来解决,可就是不知道怎么解决,每天猜猜猜,累死了
对了,我们没有用tornado的工程管理,因为一些历史原因,现在还一直在用自己写的makefile,比较土。但工程非常大,代码上百万行,几千个文件,涉及到十几个部门各自的makefile,所以回归到tornado的工程管理会牵涉到很多管理上的问题,暂时只能用makefile的方法来自己维护工程
试过用tornado的工程来进行编译连接,一点问题都没有,可是用自己写的ccppc和ldppc就不行。对比了tornado生成的makefile和我们自己的makefile,ccppc和ldppc的参数没有任何区别
这问题搞了很久了,虽然没有全天候的搞这一个问题,但总是解决不了,弄得心情很郁闷
相信很多兄弟姐妹都做过这方面的工作,有没有解决方案,帮兄弟一把
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:baoguochao 时间:2008-8-29 21:11:44
自己顶一下,兄弟们帮帮忙
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|