Linux下用交叉编译器编译报错缺少Libc.so.6【求教】

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下用交叉编译器编译报错缺少Libc.so.6【求教】相关的知识,希望对你有一定的参考价值。

操作系统:ubuntu12.04
交叉编译器:arm-arago-linux-gnueabi-g++

写一个最简单的程序
#include "stdio.h"
int main()

printf("ARM TEST");

return 0;



命令行编译:arm-arago-linux-gnueabi-g++ -o tarm t.c
如果-o改成-c仅仅编译不报错。

命令行下编译报错提示,如下:
/home/xassassin/armlinuxdev/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: skipping incompatible /home/xassassin/armlinuxdev/bin/../lib/gcc/../../lib/libc.so.6 when searching for ../../lib/libc.so.6
/home/xassassin/armlinuxdev/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: skipping incompatible /home/xassassin/armlinuxdev/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/lib/../../lib/libc.so.6 when searching for ../../lib/libc.so.6
/home/xassassin/armlinuxdev/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: skipping incompatible /home/xassassin/armlinuxdev/bin/../arm-arago-linux-gnueabi/lib/../../lib/libc.so.6 when searching for ../../lib/libc.so.6
但是却能够生成可执行程序,放到开发板上不能运行,提示:segmentation fault
最初是用QT CREATE,报这个错误,如果用X86的编译器就不会报错,一切正常。后来用命令行也不行。。。。
这个libc.so.6的文件实际是有的在/home/xassassin/armlinuxdev/lib/
这个报错似乎是出在对编译后的目标 *.o文件进行链接的时候,不是执行和编译的时候。
所以感觉上应该是,交叉编译器,哪里配置的问题~~~~很是奇怪!

参考技术A #打开/etc/ld.so.conf,在最后一行添加/home/xassassin/armlinuxdev/bin/lib/
$sudo vim /etc/ld.so.conf
#执行此命令,然后再编译
$sudo ldconfig

追问

ld.so.conf里面本来有一行,现在改成,如下内容

include /etc/ld.so.conf.d/*.conf
/home/xassassin/armlinuxdev/lib/
保存后,执行ldconfig,没用啊,还报同样的错误。。。

~上面的路径写错了,是/home/xassassin/armlinuxdev/lib/

追答

是不是软件之间不兼容。

追问

肯定不是,除了电脑硬件配置不一样,但是这个是运行在VMWare里面的,版本不一样,我用的是10.0,另一个朋友用的是9.0,其它完全一样,我的报错,他的不报错。

追答

能否比较一下,你俩的不同呢。应该有差异。刚才听同事说交叉编译不应该使用系统的环境,应该使用你自己搭建的交叉编译环境,所有的库,都应该是交叉编译环境里的,而不使用系统的。看看你与你朋友的交叉编译有什么不同之处吧。

本回答被提问者和网友采纳

以上是关于Linux下用交叉编译器编译报错缺少Libc.so.6【求教】的主要内容,如果未能解决你的问题,请参考以下文章

arm-fsl-linux-gnueabi交叉编译器安装

CodeTyphonGCC编译出现 undefined reference to `__libc_csu_init' 和 `__libc_csu_fini'的解决方法

找不到/lib/libc.so.6

64位redhat-linux安装snmp的RPM包是总提示缺少libc.so.6()(64bit)

libc.so.6: version 'GLIBC_2.14' not found报错提示的解决方案

如何在Linux下用QT creator搭建mips-linux交叉编译开发环境,如果您熟悉ARM-linux环境搭建的话也希望你能指