【求助】mips-linux交叉编译器
时间:2006-06-02
来源:互联网
各位同道:
我费了很大力气,做成了一个 mips-linux 交叉编译器。至少我看编译
cross ompile 的过程本身没有什么问题。
但是我用这个cross compile 编译程序的时候却总是不成功:
1,我随便写了个c文件: mm.c
然后用 我新生成的 cross compile 进行编译:
/cross/tool-mips/mips3-linux-gcc mm.c
但编译的时候出现了问题:
/cross/tool-mips/lib/gcc/mips3-linux/3.4.4/../../../../mips3-linux/bin/ld: skipping incompatible /lib/libc.so.6 when searching for /lib/libc.so.6
/cross/tool-mips/lib/gcc/mips3-linux/3.4.4/../../../../mips3-linux/bin/ld: cannot find /lib/libc.so.6
collect2: ld returned 1 exit status
好像 这个 交叉编译器的ld也是从 操作系统的lib文件里找 libc.so.6,而这个文件指向的是主机linux的libc,当然不兼容了。怎样让 ld 到 某个我希望的路径上寻找库文件?
2,上述方法行不通,我就编了一个makefile如下:
LDLIBDIR1=/cross/tool-mips/mips3-linux/lib
LDLIBDIR2=/cross/tool-mips/mips3-mgp32-eb-gnu/lib
LDFLAGS+=-lc -lgcc -lc
mm.o: mm.c
/cross/tool-mips/mips3-mgp32-eb-gnu/bin/mips3-linux-gcc -c mm.c -o mm.o
all: mm.o
/cross/tool-mips/bin/mips3-linux-ld -L$(LDLIBDIR1) -L$(LDLIBDIR2) -elf2fit crti.o crtbegin.o mm.o libc.a crtend.o $(LDFLAGS)
可编译的时候出下面的错
/cross/tool-mips/mips3-mgp32-eb-gnu/bin/mips3-linux-gcc -c mm.c -o mm.o
/cross/tool-mips/bin/mips3-linux-ld -L/cross/tool-mips/mips3-linux/lib -L/cross/tool-mips/mips3-mgp32-eb-gnu/lib -elf2fit crti.o crtbegin.o mm.o libc.a crtend.o -lc -lgcc -lc
/cross/tool-mips/bin/mips3-linux-ld: crti.o: No such file: 没有那个文件或目录
可是 crti.o趋势就放在 LDLIBDIR1下面啊,怎么还找不到?
3,顺便问一句,链接的时候为什么要用 crti.o crtbegin.o crtend.o
这些文件?它们究竟是作什么用的?
4,我又用自己的交叉编译器 编译 busybox,但发现出现下面的错误:
/cross/material/busybox-1.1.2/libbb/libbb.a(bb_xgetpwnam.o): In function `bb_xgetpwnam':
bb_pwd.c
.text+0x14): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/cross/tool-mips/lib/gcc/mips3-linux/3.4.4/../../../../mips3-linux/bin/ld: warning: cannot find entry symbol __start; defaulting to 00000000100000a0
/cross/tool-mips/mips3-mgp32-eb-gnu/lib/libc.a(printf_fp.o): In function `__printf_fp':
/cross/material/glibc-2.3.5/stdio-common/printf_fp.c:344: undefined reference to `__lttf2'
collect2: ld returned 1 exit status
make[1]: *** [busybox_unstripped] 错误 1
make: *** [_all] 错误 2
这又是怎么回事?感觉好像是交叉编译器没有安装成功
我费了很大力气,做成了一个 mips-linux 交叉编译器。至少我看编译
cross ompile 的过程本身没有什么问题。
但是我用这个cross compile 编译程序的时候却总是不成功:
1,我随便写了个c文件: mm.c
然后用 我新生成的 cross compile 进行编译:
/cross/tool-mips/mips3-linux-gcc mm.c
但编译的时候出现了问题:
/cross/tool-mips/lib/gcc/mips3-linux/3.4.4/../../../../mips3-linux/bin/ld: skipping incompatible /lib/libc.so.6 when searching for /lib/libc.so.6
/cross/tool-mips/lib/gcc/mips3-linux/3.4.4/../../../../mips3-linux/bin/ld: cannot find /lib/libc.so.6
collect2: ld returned 1 exit status
好像 这个 交叉编译器的ld也是从 操作系统的lib文件里找 libc.so.6,而这个文件指向的是主机linux的libc,当然不兼容了。怎样让 ld 到 某个我希望的路径上寻找库文件?
2,上述方法行不通,我就编了一个makefile如下:
LDLIBDIR1=/cross/tool-mips/mips3-linux/lib
LDLIBDIR2=/cross/tool-mips/mips3-mgp32-eb-gnu/lib
LDFLAGS+=-lc -lgcc -lc
mm.o: mm.c
/cross/tool-mips/mips3-mgp32-eb-gnu/bin/mips3-linux-gcc -c mm.c -o mm.o
all: mm.o
/cross/tool-mips/bin/mips3-linux-ld -L$(LDLIBDIR1) -L$(LDLIBDIR2) -elf2fit crti.o crtbegin.o mm.o libc.a crtend.o $(LDFLAGS)
可编译的时候出下面的错
/cross/tool-mips/mips3-mgp32-eb-gnu/bin/mips3-linux-gcc -c mm.c -o mm.o
/cross/tool-mips/bin/mips3-linux-ld -L/cross/tool-mips/mips3-linux/lib -L/cross/tool-mips/mips3-mgp32-eb-gnu/lib -elf2fit crti.o crtbegin.o mm.o libc.a crtend.o -lc -lgcc -lc
/cross/tool-mips/bin/mips3-linux-ld: crti.o: No such file: 没有那个文件或目录
可是 crti.o趋势就放在 LDLIBDIR1下面啊,怎么还找不到?
3,顺便问一句,链接的时候为什么要用 crti.o crtbegin.o crtend.o
这些文件?它们究竟是作什么用的?
4,我又用自己的交叉编译器 编译 busybox,但发现出现下面的错误:
/cross/material/busybox-1.1.2/libbb/libbb.a(bb_xgetpwnam.o): In function `bb_xgetpwnam':
bb_pwd.c

/cross/tool-mips/lib/gcc/mips3-linux/3.4.4/../../../../mips3-linux/bin/ld: warning: cannot find entry symbol __start; defaulting to 00000000100000a0
/cross/tool-mips/mips3-mgp32-eb-gnu/lib/libc.a(printf_fp.o): In function `__printf_fp':
/cross/material/glibc-2.3.5/stdio-common/printf_fp.c:344: undefined reference to `__lttf2'
collect2: ld returned 1 exit status
make[1]: *** [busybox_unstripped] 错误 1
make: *** [_all] 错误 2
这又是怎么回事?感觉好像是交叉编译器没有安装成功
作者: crystalbook 发布时间: 2006-06-02
没有安装/(compile)glibc(for mips)
作者: 魔芋 发布时间: 2006-06-02
交叉编译工具制作过程不对,
能列出你是怎么做的吗?
能列出你是怎么做的吗?
作者: hhq2005 发布时间: 2006-06-10
你是按照http://www.linux-mips.org上的“Roll-your-own”来做的吗?
我目前的mips-unknown-linux-gnu-gcc总是报“crt1.o:not such file”。
打算用ELDK了。
你的问题解决了没? 共享一下经验哈
我目前的mips-unknown-linux-gnu-gcc总是报“crt1.o:not such file”。
打算用ELDK了。
你的问题解决了没? 共享一下经验哈
作者: ubuntu_amateur 发布时间: 2006-07-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28