我正在寻找有关交叉编译的材料或链接,例如 eabi 等

sub*_*bbu 2 arm sensors cross-compilation

我正在寻找有关交叉编译的材料或链接,例如 eabi 等。我是基于 Linux 的交叉编译的新手,我想拓展我的知识。

kar*_*rel 5

来自在 Ubuntu 上安装 ARM 交叉编译器工具链

如何在 Ubuntu 上安装完整的工具链来交叉编译 Linux 内核、Linux 设备驱动程序、Linux 应用程序和引导加载程序(例如 AT91Bootstrap 及其衍生产品,例如 AcmeBoot 和 AriaBoot)。

此过程已在 Linux Ubuntu 16.04 上进行了测试。
Ubuntu 16.04-20.04 及以上版本的默认 Ubuntu 存储库中都有相同的 ARM 交叉编译器工具链。

###安装交叉编译器、实用程序等。

通过键入以下命令安装 GCC、G++ 交叉编译器和支持程序:

sudo apt install libc6-armel-cross libc6-dev-armel-cross
sudo apt install binutils-arm-linux-gnueabi
sudo apt install libncurses5-dev
Run Code Online (Sandbox Code Playgroud)

如果您使用的是AriettaAriaFOX G20板:

sudo apt install gcc-arm-linux-gnueabi
sudo apt install g++-arm-linux-gnueabi
Run Code Online (Sandbox Code Playgroud)

如果您使用的是AcquaRoadRunner板:

sudo apt install gcc-arm-linux-gnueabihf
sudo apt install g++-arm-linux-gnueabihf
Run Code Online (Sandbox Code Playgroud)

现在,您可以在 PC 上交叉编译基于 Microchip MPU 的 Acme 板的所有可用源代码。

###尝试交叉C编译器

让我们尝试用 C 语言交叉编译一个 Hello World 示例并在 Acme 板上运行它。

这是例子:

#include "stdio.h"
 
int main(void) {
  printf("Hello world!\n");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译它输入:

arm-linux-gnueabi-gcc hello.c -o hello
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我们使用的是刚刚安装在您 PC 上的 ARM 版本的 gcc。它将为您的 Linux 板生成一个可执行文件。

通过ssh复制板上的可执行文件:

scp hello root@[your_board_ip]:/root
Run Code Online (Sandbox Code Playgroud)

然后在板上打开命令会话并运行示例:

./hello
Hello world!
Run Code Online (Sandbox Code Playgroud)

###尝试交叉C++编译器

让我们尝试用 C++ 交叉编译一个 Hello World 示例并在 Acme 板上运行它。

这是例子:

#include "iostream"
 
using namespace std;
 
int main(int argc, char *argv[]) {
    cout << "Hello world!" << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译它输入:

arm-linux-gnueabi-g++ hello.cc -o hello
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我们使用的是刚刚安装在您 PC 上的 ARM 版本的 gcc。它将为您的 Linux 板生成一个可执行文件。

通过ssh复制板上的可执行文件:

scp hello root@[your_board_ip]:/root
Run Code Online (Sandbox Code Playgroud)

然后在板上打开命令会话并运行示例:

./hello
Hello world!
Run Code Online (Sandbox Code Playgroud)

本教程中的所有软件包也都位于默认的 Ubuntu 14.04 存储库中。

###特定于 nRF51、LM35 和 Arduino 的链接