2016-07-13 135 views
1

我想在MIPS架构(BCM6358)中运行一个应用程序。我公司开发的“Hello World”的应用程序是这样的:针对MIPS架构的交叉编译

#include <stdio.h> 
int main() 
{ 
    printf("Hello World") ; 
    return 0  ; 
} 

我也编这样的:

# mips-linux-gnu-gcc -muclibc hallo.c 

但是,当我碰到...它不工作:

# libc.so.6 aborted attempt to ... a.out!! 

当然,libc.so.6不存在于MIPS框中,但是libc.so.0却存在。

我也编这样的:

# mips-linux-gnu-gcc -muclibc -mips32 -EB hallo.c -o hallo 

但是,输出是一样的。

我不知道“-muclibc”是否工作正常,因为在我的Ubuntu机器上,我没有找到关于libc.so.0的任何内容,都没有找到uclibc。

[email protected]:/# find/-name libc.so.* -print 
/usr/mips-linux-gnu/lib/libc.so.6 
/lib/i386-linux-gnu/libc.so.6 
/lib/x86_64-linux-gnu/libc.so.6 
[email protected]:/# find/-name *uclib* -print 

任何想法?

谢谢,最好的问候。

+0

'-muclibc'应该做什么?你的MIPS目标是否有libc.so? – markgz

回答

0

是的,MIPS目标具有libc.so和:

libc.so.6 != uClibc 
libc.so.6 == glibc 
libc.so.0 == uClibc 

我-muclibc编译。

但是,我明白了! weeeeellll!

我所做的就是安装一个老CodeSourcery的,并与静态库编译如下:

# mips-linux-gnu-gcc -muclibc -mips32 -EB -static hallo.c -o hallo 

感谢,最诚挚的问候。