【问题标题】:mips compilation LSB MSBmips 编译 LSB MSB
【发布时间】:2011-11-09 00:42:54
【问题描述】:

我正在为 MIPS 处理器(小端架构)交叉编译开源库 oRTP。我的开发系统是i386 linux。我以

身份运行配置脚本

./configure --host=mips-linux

configure 脚本使用 mips-linux-gnu-gcc 编译器并构建库。但是,当我尝试将库与可执行文件链接时,我得到未定义的符号,表明 ortp 库是为大端构建的,而目标是小端。

在目标显示的现有可执行文件上运行file 命令

ELF 32 位 LSB 可执行文件,MIPS,MIPS32 rel2 版本 1,动态 已链接(使用共享库),用于 GNU/Linux 2.6.12,未知 能力 0xf41 = 0x756e6700,具有未知能力 0x70100 = 0x1040000,未剥离

并在 ortp 目标文件上运行 file 显示

ELF 32 位 MSB 可重定位,MIPS,MIPS32 rel2 版本 1 (SYSV),带有 未知能力 0x41000000 = 0xf676e75,具有未知能力 0x10000 = 0x70401,未剥离

尽管两者都是为 MIPS 构建的,但现有的可执行文件是 LSB,而 ortp 编译的目标文件是 MSB。

如何针对 MIPS 和 LSB 进行编译以使链接正常?

【问题讨论】:

  • 嗯,我觉得自己很糟糕。我明确地将 CC 编译器指定为 mipsel-linux-gcc,问题就解决了。 CC=/path/to/mipsel-linux-gcc ./configure --host=mips-linux

标签: gcc compilation mips


【解决方案1】:

嗯,我觉得自己很糟糕。我明确将 CC 编译器指定为 mipsel-linux-gcc,问题已解决。

CC=/path/to/mipsel-linux-gcc ./configure --host=mips-linux

所以要走的路是使用 mipsel-linux-gcc 编译器,以防您为小端 mips 处理器进行编译,并为大端 mips 处理器使用仅 mips-linux-gcc 编译器。

【讨论】:

  • 我遇到了同样的问题,但是我使用的工具链中没有 mipsel-linux-gcc。我不得不使用“-EL”选项来交叉编译小端架构。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多