导 航┆主 站┆文 章┆资 料┆下 载┆美 食┆读 书┆笑 话┆博 客┆论 坛
>> Tony嵌入式开发论坛静态版首页
查看完全版本:Tony嵌入式开发论坛

 

    [求助]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

    自己顶一下,兄弟们帮帮忙

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------



查看完全版本:Tony嵌入式开发论坛
Copyright 2006-2008 Cevx.Com Cevx.Net 制作 版权所有
网友发帖仅代表个人观点,与本论坛立场无关