-1

任意の ARM プロセッサのツールチェーンを使用して、任意のオペレーティング システムをコンパイルできますか? ツールチェーンの OS への依存関係は何ですか?

私の問題は些細なことに聞こえるかもしれません...私はARMのツールチェーンについて何も知りません。

4

4 に答える 4

4

Arm プロセッサ用のツールチェーンを使用して、オペレーティング システムをコンパイルできますか?

ターゲットOSに依存します。ARM アーキテクチャ (Linux など) をサポートしている場合は、構成とパッチのみが不足していますが、通常はサポートされています。

ツールチェーンの OS への依存関係は何ですか?

私はGCCの経験しかないので、 binutilsglibc +カーネルヘッダー、そしてGCCと言います。スレッドが必要な場合は、pthreads も必要です。

Linux on ARMをブートストラップする方法については、この記事を参照してください。かなり古いものですが、同じプロセスが適用され、適切なパッチが適用されます。

于 2009-10-06T06:15:21.147 に答える
1

Arm やその他のプロセッサをターゲットとするツールチェーンを構築するために、 BuildRootを参照することをお勧めします。

于 2009-10-06T06:28:38.920 に答える
0

一般的に、いいえ。ツールチェーンには、システムlibCライブラリに依存するコンパイラライブラリがあり、これらはオペレーティングシステムから取得されます(オペレーティングシステムのない小さな「ベアメタル」システムをコンパイルする場合を除きます。この場合、他の場所から取得されます)。

したがって、特定のツールチェーンでコンパイルされたプログラムは、互換性のあるlibCを備えたシステムでのみ機能します。たとえば、ARM GlibCベースのシステム用のツールチェーンがある場合、GlibCを使用する標準のARM Linuxシステムのプログラムをコンパイルすることはできますが、uClibcを使用するARMuClinuxシステムやARMベアメタルシステムでは機能しません。 Newlibを使用します。

他にもいくつかのマイナーな依存関係がありますが(私はあまり詳しくありません)、それが最大の依存関係です。

于 2011-02-13T08:16:47.817 に答える
0

多くのクロス プラットフォーム コンパイラが利用可能で、多くのバージョンの gcc も提供されています... arm 用にカーネルをコンパイルするには、クロス コンパイラを取得し、カーネル フォルダの最上位の Makefile を変更する必要があります。例: ARCH = arm および CROSS_COMPILE = arm-linux- 、 CROSS_COMPILE 引数は、gcc-cross-platform ツールをどこに保存したかによって異なります...

ここで ARCH は Architecture の略です

于 2012-09-22T11:14:10.030 に答える