一部の32ビットarmデバイス用のクロスコンパイルビルドサーバーを構築しようとしています。アーキテクチャは次のとおりです。 (uname -m から) "armv5tejl" binutils および gcc の宛先を指定する必要があります。 - target = aarch64-linux(例えば)私のユースケースのターゲットフラグは--target = armav5tejl-linuxであると予想するべきですか?それともどのターゲットフラグを使用するのか、どうすればわかりますか?
$で助けを求めてみましたが、gcc --target-help| less
役に立つものはありませんでした。
答え1
特にARM v5TEJアーキテクチャを意味armv5tejl
します。uname
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