2010-12-12 15 views
0
make ARCH=arm msm_defconfig 
make ARCH=arm CROSS_COMPILE=$SOURCE_FOLDER/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- zImage -j4 

私はアンドロイドカーネルをビルドしたいと思います。私はそれについていくつかのチュートリアルを見つけました。上記のコマンドが見つかりました。このコマンドの仕組みを知りたいですか?だから、もし誰かがそれを説明したり、これについて私にいくつかの参考資料を与えることができれば、それはより良いでしょう。誰かが私にこのコマンドを教えてもらえますか(ARCHを作る)?

ありがとうございます!

答えて

2

make ARCH=armは、非ARMシステムでクロスコンパイルするため、これがARMアーキテクチャ用の意図したビルドであることを指定します。 CROSS_COMPILEはツールに追加する名前を指定しているため、正しいツールを使用して結果のオブジェクトファイルとバイナリを生成します。

ARCH=armは実際には(公式の用語がないため)ローカル環境変数です。環境変数として設定することもできます。 CROSS_COMPILE

export ARCH=arm 
export CROSS_COMPILE="..." 
make -j4 zImage 

と同じこと、あなたがすることをしなかった場合は、実行されたすべてのmakeコマンドのため、ご使用の環境に影響を与えるかもしれないが。

編集誰もが基本的には完全にそれを説明することなく、彼らが何をコピーするために言うように、任意の範囲で、これらの二つのフラグを説明する際に便利なように見えただけのリソース:-jパラメータを説明するためのhttp://book.opensourceproject.org.cn/embedded/oreillybuildembed/opensource/belinuxsys-chp-5-sect-3.html

+0

ありがとうございます、あなたの情報は本当に役に立ちます。 – MemoryLeak

+0

"$ SOURCE_FOLDER/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-"のようなコンパイルプラットフォームに合わせて適切なツールセットを選択する必要があるのですか? – MemoryLeak

+0

@ MemoryLeak - 'arm-eabi-'部分はツール名に追加されるので、例えば 'gcc'コンパイラは' arm-eabi-gcc'となります。 – birryree

1

makeのパラメータは=で、メークファイル内の変数に変換されます。 -jビルドを処理する複数の並列プロセスを実行するようにmakeに指示します。残りの引数はビルドターゲットです。詳細については、現在のディレクトリのMakefileとGNU makeのドキュメントを参照してください。

+0

感謝を。 – MemoryLeak

関連する問題