Linuxでgccクロスコンパイラを構築するときにどの「--target」がサポートされているか、それを指定する正確なキーワードをどのように知ることができますか?

Linuxでgccクロスコンパイラを構築するときにどの「--target」がサポートされているか、それを指定する正確なキーワードをどのように知ることができますか?

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-linuxx86_64-linux-gnu同じですx86_64-pc-linux-gnu

一度構成してビルドすると、構成されたターゲットで実行できるプログラムをビルドするコンパイラーが得られます。コンパイラ自体は設定されたホストで実行されます。一般的に言えば、ターゲットのみを指定する必要があります。はいクロスコンパイラはクロスビルドできます(これをクロスビルドと呼びます)。カナダの十字架)、しかし、クロスコンパイルを始めたばかりの場合は、今は別にしておく必要があります。

おすすめ記事