1

ツールチェーン、arm-eabi-gcc、arm-linux-gcc、arm-elf-gccについては非常に奇妙です。

arm-linux-gccとarm-elf-gccの場合、私の意見では、異なるlibcを使用しました。

しかし、arm-eabi-gccとarm-linux-gccの違いは何ですか?

arm-eabi-gccはlibcに組み込まれていないと思います。私は正しいですか?

そうでない場合は、私を修正するのを手伝ってもらえますか?

また、ubootがデフォルトのアームクロスコンパイラにarm-linux-gccを使用したのはなぜですか?

私が知っているように、ubootは依存関係のためにそのlibcを必要としません。

それが私の問題です。

どうも!

4

2 に答える 2

2

target aliasこれは、ツールチェーンのまたはと呼ばtarget-tripletれ、基本的には、そのツールチェーンを他のツールチェーンおよび所有しているネイティブ ツールチェーンから識別するためのものです。ツールチェーンが構築されているアーキテクチャ、ABI、およびターゲットホストを示します。例:

arm-none-gnueabi : ベア メタル (オペレーティング システムなし) gnu ABI

arm-linux-eabi : ホストされたシステム (Linux 環境を実行) 用のバイナリを生成します

于 2012-11-05T08:44:04.263 に答える
1

GCC コンパイラ*gccは、他のプログラムを実行するドライバ プログラムです。だから走る

arm-linux-gcc -v -O -Wall helloworld.c -o hellworld-linux-gcc
arm-elf-gcc -v -O -Wall helloworld.c -o hellworld-elf-gcc
arm-eabi-gcc  -v -O -Wall helloworld.c -o helloworld-eabi-gcc

違いがわかります。それらはおそらくcc1、アセンブリ コードへの変換を行うasプログラム、アセンブラ コードをオブジェクト コードにアセンブルするldプログラム、標準ライブラリとのリンクを行うプログラムを実行します。また、いくつかのリンクなどをラップするいくつかのcollect2を実行することもあります。

また、単に実行しarm-linux-gcc -vたり、コンパイラがどのように構成されているか、およびその正確なバージョンを理解しarm-elf-gcc -vたりすることもできます。arm-eabi-gcc -v

于 2012-11-05T07:59:39.960 に答える