Gccクロスコンパイラの背後にある命名規則を理解しようとしましたが、矛盾する答えがあるようです。私のシステムには、次の3つのクロスコンパイラがあります。
GNU libtoolマニュアルを読むとき、クロスコンパイラの命名規則を次のように指定します。
cpu-ベンダー-os(os =システム/カーネル-システム)
これは、私のシステムのコンパイラでは完全に正確ではないようです。 GNUマニュアルの情報は古いですか、それともコンパイラディストリビューターは単にそれに従うのをやめましたか?
命名はこれに帰着します:
Arch-vendor-(os-)abi
したがって、たとえば:
x86_64-w64-mingw32
= x86_64アーキテクチャ(= AMD64)、w64(=「ベンダー」としてのmingw-w64)、mingw32(= GCCから見たwin32API)
i686-pc-msys
= 32ビット(pc =一般名)msysバイナリ
i686-unknown-linux-gnu
= 32ビットGNU/linux
そしてあなたの例は具体的に:
arm-none-linux-gnueabi
= ARMアーキテクチャ、ベンダーなし、Linux OS、およびgnueabiABI。
arm-eabi
はあなたが言うように、Androidネイティブアプリに使用されます。
注意点:Debianは、難しいために異なる名前を使用します。たとえば、Debianベースのシステムを使用している場合は、名前が異なるので注意してください。 i686-pc-mingw32
。
実は、ルールがあり、それはrubenvbからの上記のものです。ただし、次のように、名前が正しくない場合があります。
gcc-pippotron-6.3.1-2017.05-x86_64_arm-linux-gnueabihf
gcc-pippotron-arm-none-eabi-4.8-2013.11_linux
上記のこのマミングは、ルールを尊重していない2つの例です。