【问题标题】:Compile C for Mips architecture为 Mips 架构编译 C
【发布时间】:2013-06-05 02:28:27
【问题描述】:

我已经看到了几种方法来做到这一点(到目前为止,我还没有尝试过几种,但为了方便起见,我想隔离这个)

应该有一种方法可以通过 gcc 执行此操作,我更愿意这样做,我只是不断地碰壁。

我正在使用 debian7 并且可以使用其他任何口味(我暂时想要避免使用 qemu,因为我想要更小规模的东西。) 我正在关注此处找到的示例。

http://moozing.wordpress.com/2011/04/05/cross-compile-in-debian/

我已经能够做所有事情,并且在其中一部分我必须安装 libgmp3c2-dummy_1.0_all.deb 让 ti 继续

刚才我需要编译,我正在编译的只是一个简单的 hello world 脚本,但是,编译后我不能导致 libgmp.so.3 不在 /usr/lib/ 目录中,但是,有一个在/usr/lib/mips-linux-gnu-gcc 文件夹我想我会把它复制过来看看是否让它编译,我知道这个 elf 文件是用大端编码的,这是有道理的。但是我在编译这个文件时缺少什么??

我试图将它编译为大端,我认为要么我对库感到困惑,要么我需要一个不同的 libgmp.so.3 ..

我也尝试过 apt-get install libgmp-dev libgmp3-dev。

如果可以的话,感谢您提供帮助! :) 如果您知道一种简单的方法来做到这一点,它不会占用我的机器上的大量空间,那么我是开放的,但我想尝试使用 GCC 并使用工具链。

谢谢!

【问题讨论】:

  • 信息可能重复。但是,就给出最有竞争力的答案而言,此处提供的答案将向其他人展示如何做到这一点。此外,在整个过程中使用 Qemu 很笨重,并不是每个人都能掌握的。
  • 重复,因为相同的答案适用于这两个问题。

标签: c gcc compiler-errors mips cross-compiling


【解决方案1】:

我设法在 Debian 中编译 MIPS。 编辑我想改进这个答案以方便其他人使用......

    1. deb http://www.emdebian.org/debian stable main to /etc/apt/sources.list 

    2. apt-get update.

    3. install libgmp3c2 from https://packages.debian.org/squeeze/libgmp3c2

    4. apt-get install gcc-4.3-mips-linux-gnu libgmp3c2-mips-cross this worked

然后只需 mips-linux-gnu-gcc file.c -o 可执行文件

就是这样。

PS 如果您正在使用路由器....在编译时使用 -static 选项。 所以最后看起来像

mips-linux-gnu-gcc -EB -march=34kc -static test.c -o test

如果您遇到无法识别密钥环公钥的问题,请使用可使用 apt 安装的 emdebian-archive-keyring 软件包。

【讨论】:

【解决方案2】:

为什么不直接安装免费的Mentor/Codesourcery gcc MIPS 交叉编译器,而不是尝试从头开始构建?

当您安装了 MIPS 交叉编译器后,您应该将 MIPS 库安装在交叉编译器的相应目录中,而在您的主机 linux 安装的 /usr/lib 目录中。您不能使用apt-get 来尝试安装 MIPS 库,因为该工具只能为您的主机 linux 安装安装库。

【讨论】:

    【解决方案3】:

    您可以参考这篇文章Setting up cross-compiler for MIPS-I version 1,因为它似乎是解决您的问题的最简单的方法,因为您只想交叉编译 MIPS(也可以参考他对问题的回答)。注意我还没有实际测试过。

    我已构建 GCC 以显示来自我的 ARM 处理器的 MIPS 程序集的源代码,但我似乎再也找不到该指南了。但是您可能还想研究构建 gcc 以进行交叉编译。几天后我会更新这篇文章,因为这激发了我写一个简单的 HOWTO 设置 MIPS 交叉编译器的兴趣。

    【讨论】:

    • 我设法编译了 MIPS。我添加了这个 1. 'emdebian.org/debian stable main' 到 /etc/apt/sources.list 2. apt-get update 3.install libgmp3c2 packages.debian.org/squeeze/libgmp3c2 4. apt-get install gcc-4.3-mips-linux-gnu libgmp3c2 -mips-cross 这行得通
    • 但是当我运行我的程序时(只是一个简单的 helloworld.c)我得到第 1 行:语法错误:单词意外(期望“)”)这让我觉得我离开了我们的括号..但我没有..目标FS可能是只读的...我会收到这个错误吗?
    • 我做了一个 ls -alrth 并且我得到了 -rwxr-xr-x 对于这些中的每一个这将使我可以执行这些...尽管 ./file 返回文件无法文件:未找到....奇怪啊?
    猜你喜欢
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    相关资源
    最近更新 更多