我应该设置什么目标标志来在 gcc 中交叉编译arm 32位代码?

我应该设置什么目标标志来在 gcc 中交叉编译arm 32位代码?

我正在尝试为一些 32 位 arm 设备构建一个交叉编译构建服务器,其架构是:(来自 uname -m)“armv5tejl” 我必须指定 binutils 和 gcc 的目标,它看起来像:-- target=aarch64-linux (例如)我是否应该期望我的用例的目标标志是 --target=armv5tejl-linux ?或者我怎么知道要使用的目标标志?

我尝试在 $ 中寻求gcc --target-help| less 帮助,但我没有看到任何有用的东西。

答案1

fromarmv5tejl代表unameARM v5TEJ 架构,特别是ARM926EJ-S CPU

要针对该 cpu 进行编译,请使用:

% /usr/bin/arm-linux-gnueabi-gcc -mcpu=arm926ej-s -o hello hello.c

您可能会遇到库问题。可能需要将二进制文件编译为静态(不使用动态库)。用这个:

% /usr/bin/arm-linux-gnueabi-gcc -static -mcpu=arm926ej-s -o hello hello.c

相关内容