LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1567|回复: 2

使用uclibc编译的问题

[复制链接]
发表于 2008-4-16 08:28:46 | 显示全部楼层 |阅读模式
我编译了uclibc库,make install后安装在
/usr/local/arm-linux/lib/lib
是big-endian的

/usr/local/arm-linux/lib
是arm板厂商给的光盘的工具链带的glibc库,但竟然是little-endian了

现在问题是我每次用arm-linux-gcc编译的时候
都会链glibc那个libc.so.6,而不是去链uclibc那个libc.so.0
导致到了板上运行会出现:
libc.so.6: aborted attempt to load ./program

如果我加了 -L参数强制指定lib目录,那就会出现编译错误
libtool: link: warning: `-version-info' is ignored for programs
/usr/local/lib/gcc/arm-linux/3.4.4/../../../../arm-linux/lib/be/crt1.o: In function `_start':
../sysdeps/arm/elf/start.S:74: undefined reference to `__libc_start_main'
../sysdeps/arm/elf/start.S:77: undefined reference to `__libc_csu_fini'
../sysdeps/arm/elf/start.S:77: undefined reference to `__libc_csu_init'
collect2: ld returned 1 exit status

请问怎样解决
发表于 2008-4-16 17:18:41 | 显示全部楼层
关于 endian, 楼主需要的究竟是哪一种? 如果工具链本身就选错 endian 的话它编出的程序是不可能正常运行的

关于 libc, 楼主的意思是工具链/开发板上同时有 glibc 和 uclibc 吗? 这样不太好吧. 工具链内部会保存有在哪里寻找库的信息, 如果其不正确, 那么多半是由于工具链制作时不正确, 或者少打了一些必要的补丁
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-16 19:26:09 | 显示全部楼层
我需要的是big endian。gcc可以编出big-endian,要加参数
但是就是附带的libc库是little-endian编译出来的。我真是服了这个厂商。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表