我正在寻找有关交叉编译的材料或链接,例如 eabi 等。我是基于 Linux 的交叉编译的新手,我想扩展我的知识。
答案1
如何在 Ubuntu 上安装完整的工具链来交叉编译 Linux 内核、Linux 设备驱动程序、Linux 应用程序和引导加载程序(如 AT91Bootstrap 及其衍生产品(如 AcmeBoot 和 AriaBoot)。
此过程已在 Linux Ubuntu 16.04 上进行了测试。相同的 ARM 交叉编译器工具链
位于 Ubuntu 16.04-20.04 的默认 Ubuntu 存储库中。###安装交叉编译器、实用程序等。
通过输入以下命令安装 GCC、G++ 交叉编译器和支持程序:
sudo apt install libc6-armel-cross libc6-dev-armel-cross sudo apt install binutils-arm-linux-gnueabi sudo apt install libncurses5-dev
sudo apt install gcc-arm-linux-gnueabi sudo apt install g++-arm-linux-gnueabi
sudo apt install gcc-arm-linux-gnueabihf sudo apt install g++-arm-linux-gnueabihf
现在您已准备好在您的 PC 上交叉编译基于 Microchip MPU 的 Acme 板的所有可用源代码。
###尝试交叉 C 编译器
让我们尝试用 C 语言交叉编译一个 Hello World 示例并在 Acme 板上运行它。
这是示例:
#include "stdio.h" int main(void) { printf("Hello world!\n"); return 0; }
输入以下命令进行编译:
arm-linux-gnueabi-gcc hello.c -o hello
如您所见,我们正在使用刚刚安装在您的 PC 上的 ARM 版本的 gcc。它将为您的 Linux 主板生成一个可执行文件。
通过ssh复制板子上的可执行文件:
scp hello root@[your_board_ip]:/root
然后在您的主板上打开一个命令会话并运行示例:
./hello Hello world!
###尝试交叉 C++ 编译器
让我们尝试用 C++ 交叉编译一个 Hello World 示例并在 Acme 板上运行它。
这是示例:
#include "iostream" using namespace std; int main(int argc, char *argv[]) { cout << "Hello world!" << endl; return 0; }
输入以下命令进行编译:
arm-linux-gnueabi-g++ hello.cc -o hello
如您所见,我们正在使用刚刚安装在您的 PC 上的 ARM 版本的 gcc。它将为您的 Linux 主板生成一个可执行文件。
通过ssh复制板子上的可执行文件:
scp hello root@[your_board_ip]:/root
然后在您的主板上打开一个命令会话并运行示例:
./hello Hello world!
本教程中的所有软件包也位于默认的 Ubuntu 14.04 存储库中。
###特定于 nRF51、LM35 和 Arduino 的链接
- nRF51 微控制器 -https://arduino.stackexchange.com/search?q=nRF51
- LM35 温度传感器 -https://arduino.stackexchange.com/search?q=lm35
- Arduino-如果可能的话,在 Arduino 上编译 Linux 需要什么?