mips eldk交叉编译错误

目前使用的mips的编译工具链为eldk4.1

这个工具链在ubuntu10.04上正常编译程序,但这个系统太老了,换了个ubuntu12.04,编译helloworld会报下面的错误

各种修改都没有解决问题,感觉像是操作系统的库文件和工具链的库文件有差异造成的


/home/kevin/Documents/mips-tools/usr/bin/../lib/gcc/mips-linux/4.0.0/../../../../mips-linux/bin/ld: warning: ld.so.1, needed by /home/kevin/Documents/mips-tools/usr/../mips_4KC/lib/libc.so.6, not found (try using -rpath or -rpath-link)

/home/kevin/Documents/mips-tools/usr/../mips_4KC/lib/libc.so.6: undefined reference to `_rtld_global@GLIBC_PRIVATE'
/home/kevin/Documents/mips-tools/usr/../mips_4KC/lib/libc.so.6: undefined reference to `__libc_enable_secure@GLIBC_PRIVATE'
/home/kevin/Documents/mips-tools/usr/../mips_4KC/lib/libc.so.6: undefined reference to `_rtld_global_ro@GLIBC_PRIVATE'
/home/kevin/Documents/mips-tools/usr/../mips_4KC/lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE'
/home/kevin/Documents/mips-tools/usr/../mips_4KC/lib/libc.so.6: undefined reference to `__libc_stack_end@GLIBC_2.2'
/home/kevin/Documents/mips-tools/usr/../mips_4KC/lib/libc.so.6: undefined reference to `_r_debug@GLIBC_2.0'
/home/kevin/Documents/mips-tools/usr/../mips_4KC/lib/libc.so.6: undefined reference to `_dl_argv@GLIBC_PRIVATE'

collect2: ld returned 1 exit status


过了好一段时间,尝试解决这个问题,


追踪/home/kevin/Documents/mips-tools/usr/bin/../lib/gcc/mips-linux/4.0.0/../../../../mips-linux/bin/ld

发现是个链接,指向

kevin@fzs:~/works/projects/work/test$ ls /opt/mips/eldk4.1/usr/mips-linux/bin/ld -al
lrwxrwxrwx 1 kevin kevin 23 Jun 24 20:58 /opt/mips/eldk4.1/usr/mips-linux/bin/ld -> ../../bin/mips-linux-ld
而我使用的工具链是mips_4KC- 
所以我尝试将这个ld指向


$ ln -s /opt/mips/eldk4.1/usr/bin/mips_4KC-ld   /opt/mips/eldk4.1/usr/mips-linux/bin/ld

编译试了一下竟然编译成功了

又发现

$ ls /opt/mips/eldk4.1/usr/bin/mips_4KC-ld -al
lrwxrwxrwx 1 kevin kevin 13 Jun 24 20:58 /opt/mips/eldk4.1/usr/bin/mips_4KC-ld -> mips-linux-ld

实际上mips_4KC-ld 又指向了mips-linux-ld,其实是一回事,那为什么编译能成功呢?

猜想:ld直接指向mips-linux-ld与指向 mips_4KC-ld 再指向 mips-linux-ld 有一点不同
那就是名字不一样,使用mips_4KC-ld的名字执行是一种结果,而使用mips-linux-ld又是一种结果
就好比busybox,你执行的ls,pwd,cd等命令最终都是链接到busybox,busybox就可以根据这个名字来区分
你执行的到底是哪个命令


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值