Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> LinuxシステムFAQ >> Linuxで一般的に使われているGccパラメータ

Linuxで一般的に使われているGccパラメータ

  

まず第一に、gccとg ++はそれぞれgnu cとc ++のコンパイラで、コンパイル時には通常4つのステップに分ける必要があります。

1前処理cppが.iファイルを生成する場合は、プリプロセッサcpp

2を使用して前処理済みファイルをアセンブリ言語に変換し、.sファイルを生成します。コンパイラを使用します。egcs

3アセンブリファイルがターゲットファイル、つまりマシンコードが生成されます.oファイルが生成されますオブジェクトコードを接続し、実行可能プログラムを生成し、コネクタldを使用してアセンブラを使用します。

-x language filenameファイルの設定に使用されている言語です現時点では、サフィックスの名前は無効ですc言語のサフィックスの.cと一致しますが、c ++の言語サフィックスの名前はです。 Cppですが、この時点で私たちは自由に接尾辞名を使うことができます。一般的に利用可能なパラメータは次のとおりです。c、客観的c、cヘッダー、c ++、cpp出力、アセンブラ、assembler-with-cpp。たとえば、次のコマンドを使用できます。cpp -xc hello.xin

-x none filenameこれは前のオプションを閉じるためのもので、gccはファイル名の接尾辞に基づいてファイルタイプを自動的に判別します(gcc -xc hello.xin -x noneなど)。 Hi.c

-cは前処理、コンパイル、およびアセンブリのみを有効にします。つまり、プログラムobjファイルを作成するだけです。gcc-c hello.cを使用して.o objファイルを生成できます。

-Sは前処理とコンパイルのみを有効にし、ファイルをアセンブリコードにコンパイルすることができます例えば、我々のgcc -S hello.cはテキストエディタを使って見ることができる.sのアセンブリコードを生成します。

-Eは前処理を有効にするだけで、ファイルは生成されませんので、gcc -E hello.c> xin.txtやgcc -E hello.cなどの出力ファイルにリダイレクトする必要があります。 もっと見る

-oターゲット名を指定しますデフォルトのgccコンパイル済みファイルはa.outですgcc -o hello hello.cを使用できます。

-pipeは、コンパイル時に一時ファイルの代わりにパイプを使用しますが、GNU以外のアセンブリツールを使用する場合は問題が生じる可能性があります。

-undefは、標準以外のマクロの定義を取り消します。

-Idir #includeを使用すると、gccは最初に現在のディレクトリに作成したヘッダーファイルを検索します。デフォルトのヘッダディレクトリファイルに移動します-Iでディレクトリを指定すると、最初に指定したディレクトリを検索し、次に通常のディレクトリに移動してそれを見つけます。

-I-は前のパラメータをキャンセルするための関数で、通常は-Idirの後に使用されます。

-Cは、前処理時にコメント情報を削除しません。一般に-Eと一緒に使用されます。プログラムの分析時に非常に便利です。

-Mは、ターゲットファイルを含むファイル関連情報を生成します。すべてのソースコードに依存しますが、gcc -M hello.cを使用してテストできます。

-MMと-Mは同じですが、#include< file>による依存関係は無視されます。

-MDは-Mと同じですが、出力は.dファイルにインポートされます。

-MMDは-MMと同じです。出力は.dファイルにインポートされます。

-libraryはコンパイルするように指定されます。いつ使用するライブラリです。

-Ldirは、コンパイル時に検索ライブラリへのパスを指定します。ここで、dirはディレクトリの名前です。

-O0、-O1、-O2、-O3は4つのレベルのコンパイラ最適化オプションです。ここで、-O0は最適化なし、-O1はデフォルト値、-O3は最高の最適化レベルです。 >

-gは単なるコンパイラで、コンパイル時にデバッグ情報を生成します。

-gstabsはデバッグ情報をスタブ形式で生成しますが、gdbデバッグ情報は含みません。

-ggdbは生成します。 Gdbのデバッグ情報

-staticは動的ライブラリの使用を禁止します。そのため、コンパイルされたものは一般的に非常に大きくなります。

-shareは動的ライブラリを使用しようとします。動的ライブラリ

- 伝統的な見習いは、コンパイラに伝統的なC言語機能をサポートさせます。

Copyright © Windowsの知識 All Rights Reserved