0

いくつかのフラグを gcc に渡すだけで、クロス コンパイラを使用せずに、Intel x64 アーキテクチャで実行されている gcc を構成して、ARM チップ用のバイナリを生成できますか。

4

1 に答える 1

4

ショート: いいえ

コンパイラ: gcc はネイティブのクロスコンパイラではありません。gcc をコンパイルするときにターゲット アーキテクチャを指定する必要があります。(x86 と x86_64 を同時にサポートできるなど、いくつかの例外が適用されます)

clang はネイティブ クロスコンパイラであり、-target=arm-linux-gnu を渡すことで arm のコードを生成できますが、リンカーと C ライブラリも必要であるため、バイナリを生成することはできません。C/C++ コードを実行およびコンパイルできることを意味clang -target=arm-linux-gnu -c <your file>します (C/C++ インクルード パスを指す必要がある可能性があります) - ただし、バイナリをビルドすることはできません。

ツールチェーンの残りの部分: 適切なリンカーとツールチェーンも必要です。どちらも、実行するアーキテクチャと OSに固有のものです。

考えられる解決策: 適切なツールチェーンを入手するか、独自のツールチェーンをコンパイルしてください。arm linux の場合は、ex があります。Debian を使用している場合はCrossToolchains 、ベアボーンの場合は codesourcery からクロスコンパイラを入手できます。

あなたは非常に漠然としていたので、明確な答えを与えることはできません

于 2016-11-07T08:51:41.580 に答える