1

もちろん、GCC バージョン >= 4.1.x をビルドするには、補助パッケージ MPFR、GMP、および MPC が存在する必要があることは誰もが知っています。

これらの GCC の依存関係を処理するには、いくつかの方法があります。

1)各サポート パッケージを個別にダウンロードしてビルドし、makeGCC ビルド時にバイナリの場所を指定します。

2)各サポート パッケージをダウンロードし、解凍してソースを GCC ビルド ディレクトリに移動するとmake、必要に応じて各パッケージが自動的にビルドされます。

(gcc-src/contrib/download_prerequisites スクリプトを実行すると、オプション 2 と同じことが行われます)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

どちらの方法にも利点はありますか?バイナリをプリコンパイルすると、「簡単なルート」を取り、パッケージのソースを GCC ビルド ディレクトリにダンプして、それをmake理解させるだけで、不足しているものが提供されますか?

各パッケージをバイナリにプリコンパイルし、makegcc コンパイル中にそれらがどこにあるかを伝えることにより、さまざまなビルド スクリプトでより頻繁に実行されるのを見てきました。これは「好ましい」方法ですか?なんで?

コンテキストを追加するために、私は主にさまざまな ARM プラットフォームを対象とするクロス コンパイラを構築しています。

4

1 に答える 1

1

ほとんどのユースケースでは、オプション 2 がオプション 1 と同じくらい良いと思います。ただし、手動で実行したい状況がいくつか見られます。

  • パッケージメンテナーは、mpfr などの別のパッケージが必要なため、個別にビルドしたいと考えています。

  • 各パッケージに異なる構成引数/CFLAGS を渡したい人。

  • MPFR/GMP などに変更を加えないため、ソースを維持してツリーを小さく構築したい GCC 開発者。

私は (かなり醜い) GCC ビルド システムであまり作業を行っていませんが、バイナリのビルド方法に明らかな違いは見られませんでした。

ただし、私はこれに関する最大の権威ではないので、YMMV; 私は間違っているかもしれません。

于 2014-04-24T17:47:47.950 に答える