我正在交叉编译用于MIPS处理器的开源库oRTP (小端拱)。我的开发系统是i386 linux。我将配置脚本运行为
./configure --host=mips-linux
配置脚本使用mips-linux-gnu-gcc编译器并构建库。但是,当我试图将库链接到一个可执行文件时,我会得到未定义的符号,说明ortp是为大端元构建的,目标是小端点。
在目标上现有的可执行文件上运行file命令如下所示
ELF 32位LSB可执行文件,MIPS,MIPS32 rel2 version 1,动态链接(使用共享库),用于GNU/Linux2.6.12,具有未知功能0xf 41= 0x756e6700,具有未知功能0x70100 = 0x1040000,没有剥离
在ortp对象文件上运行file显示
ELF 32位MSB可重定位,MIPS32 rel2 version 1 (SYSV),具有未知功能0x41000000 = 0xf676e75,具有未知功能0x10000 = 0x70401,未剥离
尽管这两个文件都是为MIPS构建的,但现有的可执行文件是LSB,因为ortp编译的对象文件是MSB。
如何为MIPS和LSB编译,使链接变得更好?
发布于 2011-09-04 15:29:06
我对自己感到很难过。我明确地将CC编译器赋予mipsel-linux-gcc,并解决了这个问题.
CC=/path/to/mipsel-linux-gcc ./配置-主机=mips-linux
因此,方法是使用mipsel-linux-gcc编译器,以防您正在为小型endian mips处理器编译,并使用mipsel只用于大端mips处理器的编译器。
https://stackoverflow.com/questions/7281366
复制相似问题