x86-64システムで実行する必要がある実行可能ファイルを生成するためにgccコンパイラを構築しようとしています。実際、私のコンピュータは既存の64ビットgccコンパイラを使用しています。これは冗長ですが、学習目的で行います。
問題は、--targetオプションを指定する方法がわからないことです。そこには何を入力する必要がありますか? 「x86-64」だけ入力してもいいですか?
クロスコンパイラがソースコードをコンパイルするために別のx86-64ビットシステムで実行する必要があるx86システム用の実行可能ファイルを生成するにはどうすればよいですか?ターゲットとホストを設定するにはどのキーワードを使用する必要がありますか?
ホストとターゲットシステムがサポートするアーキテクチャと、それを指定する正しいコマンドを指定するgccマニュアルがあるかどうかを知りたいです。
ベストアンサー1
サポートされているターゲットアーキテクチャについては、確認する必要があります。configure
そしてconfig.sub
ビルドしたいすべてのGCCソースから。また、一致するbinutilsとCライブラリが必要です。GCCインストールマニュアルコンパイラーの構成およびビルドに関連するステップに関する詳細を提供します。
アーキテクチャに加えて、ターゲットオペレーティングシステムとライブラリも決定する必要があるため、GNU Cライブラリを持つx86_64の場合は、--target=x86_64-linux-gnu
より短いエイリアスが存在し、次を実行してconfig.sub
そのエントリを確認できます。
$ src/config.sub x86_64-linux
x86_64-pc-linux-gnu
したがって、./configure --target=x86_64-linux
とx86_64-linux-gnu
同じですx86_64-pc-linux-gnu
。
一度構成してビルドすると、構成されたターゲットで実行できるプログラムをビルドするコンパイラーが得られます。コンパイラ自体は設定されたホストで実行されます。一般的に言えば、ターゲットのみを指定する必要があります。はいクロスコンパイラはクロスビルドできます(これをクロスビルドと呼びます)。カナダの十字架)、しかし、クロスコンパイルを始めたばかりの場合は、今は別にしておく必要があります。