当前位置: 技术问答>linux和unix
arm9 嵌入式 linux "/lib/libc.so.6: version `GLIBC_2.2' not found" 问题
来源: 互联网 发布时间:2015-11-26
本文导语: 主机 rethat 9 内核 2.4.20-8 目标板 Linux KTARM9200 2.4.19-rmk7 编译器 /usr/local/arm/2.95.3/bin/arm-linux-gcc 联接了 库 -lpthread -lrt -lm 编译通过, 程序下到 板子中 执行 提示错误 : ./exe: /lib/libc.so.6: version `GLIBC_2.2' not f...
主机 rethat 9 内核 2.4.20-8
目标板 Linux KTARM9200 2.4.19-rmk7
编译器 /usr/local/arm/2.95.3/bin/arm-linux-gcc
联接了 库 -lpthread -lrt -lm
编译通过,
程序下到 板子中 执行
提示错误 :
./exe: /lib/libc.so.6: version `GLIBC_2.2' not found (required by ./exe)
./exe: /lib/libc.so.6: version `GLIBC_2.2' not found (required by /usr/lib/libr)
./exe: /lib/libpthread.so.0: version `GLIBC_2.2' not found (required by /usr/li)
请高手帮忙看看, 给点提示,谢谢!
目标板 Linux KTARM9200 2.4.19-rmk7
编译器 /usr/local/arm/2.95.3/bin/arm-linux-gcc
联接了 库 -lpthread -lrt -lm
编译通过,
程序下到 板子中 执行
提示错误 :
./exe: /lib/libc.so.6: version `GLIBC_2.2' not found (required by ./exe)
./exe: /lib/libc.so.6: version `GLIBC_2.2' not found (required by /usr/lib/libr)
./exe: /lib/libpthread.so.0: version `GLIBC_2.2' not found (required by /usr/li)
请高手帮忙看看, 给点提示,谢谢!
|
应该是你的编译环境的GCC,GLIBC的版本高于你的目标版上的版本。
你可以更新你的目标板的环境,或者将你的编译、链接环境降低到小于等于你的目标版的环境。
btw:用google或百度搜一下,应该有很多这样的类似错误的
你可以更新你的目标板的环境,或者将你的编译、链接环境降低到小于等于你的目标版的环境。
btw:用google或百度搜一下,应该有很多这样的类似错误的
|
我不是高手,也没做过嵌入式。。。
以前在其他地方碰到过类似的错误。
现在看来你只有更改自己的环境了。
从你的出错来看应该是你的编译环境的C库的版本比较高,所以找一个版本比较低的C库重新装一下。
但是我也没这样做过,自己也不是很明白,嫌麻烦,还请哪位大虾再来介绍一下,我也很想弄明白。
当时我的做法是换成 redhat 7 ,内核好像是2.2的,然后再重新编译、链接程序就可以了。其实应该并不是系统的问题,而是装redhat 7的时候默认装上去的gcc和glibc的版本都应该比较低,所以OK了。
以前在其他地方碰到过类似的错误。
现在看来你只有更改自己的环境了。
从你的出错来看应该是你的编译环境的C库的版本比较高,所以找一个版本比较低的C库重新装一下。
但是我也没这样做过,自己也不是很明白,嫌麻烦,还请哪位大虾再来介绍一下,我也很想弄明白。
当时我的做法是换成 redhat 7 ,内核好像是2.2的,然后再重新编译、链接程序就可以了。其实应该并不是系统的问题,而是装redhat 7的时候默认装上去的gcc和glibc的版本都应该比较低,所以OK了。
|
glib2运行库在系统中是存在的,但头文件和编译需要的东西一般不存在,需要下载与内核中提供的相同版本的glib2来支持编译环境。glib2具说是比较难升级的,因此只能使用系统同样的版本。
|
以前我碰过这个问题,是因为我的工作链制作错了,重新作了一遍就好了
要么就是你没有指定正确的环境变量
要么就是你没有指定正确的环境变量
|
你的交叉编译工具软件包不完整,或者你编译的时候路径不对.
|
往简单了说 就是
你的板子上的库 和 你的交叉编译器的库 不兼容。
或者说 你板子上的库和你的可执行程序不是同一个toolchain(或者同一版本的)编译而成的
对于gcc编译器, 通常至少要注意两个
1) gcc
2) glib
用crosstool自己可以编译得到指定gcc版本和glib版本的交叉编译工具,
亦可包含target需要的库
同一toolchain编译出来的肯定不存在不兼容的问题。
你的板子上的库 和 你的交叉编译器的库 不兼容。
或者说 你板子上的库和你的可执行程序不是同一个toolchain(或者同一版本的)编译而成的
对于gcc编译器, 通常至少要注意两个
1) gcc
2) glib
用crosstool自己可以编译得到指定gcc版本和glib版本的交叉编译工具,
亦可包含target需要的库
同一toolchain编译出来的肯定不存在不兼容的问题。
|
你重新手动配置一下交叉编译器的生成试试.
|
要用厂商提供的 内核和toolchain
各个板子有不同之处的
各个板子有不同之处的