2

/usr/llvm-gcc-4.2/bin私が持っているを調べて

544416 Oct 31 17:10 i686-apple-darwin11-llvm-g++-4.2*
544416 Oct 31 17:10 i686-apple-darwin11-llvm-gcc-4.2*
117168 Oct 31 17:10 llvm-c++-4.2*
257552 Oct 31 17:10 llvm-cpp-4.2*
117168 Oct 31 17:10 llvm-g++-4.2*
117168 Oct 31 17:10 llvm-gcc-4.2*

誰かがこれらのコンパイラの違いを説明できますか?

同じアプリケーション(ac hello-world)を両方i686-apple-darwin11-llvm-gcc-4.2で コンパイルしますllvm-gcc-4.2。両方とも機能しますが、diffは違いを報告します。

誰かがそれらの実行可能ファイルの違いを説明できますか?

4

1 に答える 1

2

llvm-gcc-4.2 はデフォルトのフロントエンドであり、プラットフォームに依存するオプションがあります。llvm がターゲット サポートを使用してビルドされ、見つかった場合、アーキテクチャとマシンを指定して、特定のターゲットに対してコンパイラを呼び出すことができます。ディレクトリの場合/usr、システム全体 (Intel x86) プラットフォームに使用されるため、i686-apple-darwin11(i386 および x86_64) プラットフォームのみが含まれます。したがって、明示的に呼び出すi686-apple-darwin11-llvm-gccと、x86、x86_64 ターゲットをサポートできます。

Xcode と iOS 開発環境がインストールされている場合は、次のようにさらにファイルが見つかるはずです。

$ ls -l
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin
total 2336
-rwxr-xr-x  1 root  wheel  555056 Sep  8 16:49 arm-apple-darwin10-llvm-g++-4.2
-rwxr-xr-x  1 root  wheel  546832 Sep  8 16:49 arm-apple-darwin10-llvm-gcc-4.2
-rwxr-xr-x  1 root  wheel  130784 Sep  8 16:49 gcov-4.2
-rwxr-xr-x  1 root  wheel  550960 Sep  8 16:49 i686-apple-darwin10-llvm-g++-4.2
-rwxr-xr-x  1 root  wheel  542752 Sep  8 16:49 i686-apple-darwin10-llvm-gcc-4.2
-rwxr-xr-x  1 root  wheel  106064 Sep  8 16:49 llvm-c++-4.2
-rwxr-xr-x  1 root  wheel  255696 Sep  8 16:49 llvm-cpp-4.2
-rwxr-xr-x  1 root  wheel  106064 Sep  8 16:49 llvm-g++-4.2
-rwxr-xr-x  1 root  wheel  106064 Sep  8 16:49 llvm-gcc-4.2

llvm-gcc、およびの 2 つのターゲットがありarm-apple-darwin10ますi686-apple-darwin10。HOST は引き続き i686 Mac OS X であるためllvm-gcc-4.2、ホスト コンパイラにもデフォルトの i686 を使用します。arm-apple-darwin10-llvm-gcc-4.2ARM 命令コードを生成するために、Intel Mac OS X プラットフォームで実行できるクロス コンパイラです。

于 2012-11-07T09:05:51.690 に答える