gcc_egcs使用
1.egcsの使用
Linuxで最も重要なソフトウェア開発ツールはGCCです.GCCはGNUのCとC++コンパイラです.実際、GCCは、C、C++、Object C(C言語のオブジェクト向け拡張)の3つの言語をコンパイルすることができます.gccコマンドを使用すると、CとC++ソースプログラムを同時にコンパイルして接続できます.
#DEMO#: hello.c
2つ以上のCソースファイルがある場合は、GCCを使用して実行可能ファイルをコンパイル、接続、生成することもできます.たとえば、main.cとfactorial.cの2つのソースファイルがあるとします.次に、乗算を計算するプログラムをコンパイルします.
リストfactorial.c
インベントリ メール.
次のコマンドを使用して、コンパイルして実行可能ファイルを生成し、プログラムを実行します.
$ gcc -o factorial main.c factorial.c $ ./factorial 5 Factorial of 5 is 120.
GCCはCプログラムとC++プログラムを同時にコンパイルするために使用することができる.一般に、Cコンパイラは、ソースファイルの接尾辞名によって、CプログラムかC++プログラムかを判断する.Linuxでは、Cソースファイルの接尾辞名は.cであり、C++ソースファイルの接尾辞名は.Cまたは.cppである.
ただし、gccコマンドはC++ソースファイルのみをコンパイルでき、C++プログラムで使用するライブラリに自動的に接続できません.したがって、通常、g++コマンドを使用してC++プログラムのコンパイルと接続を完了し、このプログラムは自動的にgccを呼び出してコンパイルを実現する.次のC++ソースファイル(hello.C)があるとします.
g++コマンドを呼び出して実行可能ファイルをコンパイル、接続し、生成できます.
$ g++ -o hello hello.C $ ./hello Hello, world!
2. gcc/egcsの主なオプション
表1-3 gccコマンドの一般的なオプション 解釈-ansi ANSI標準のC構文のみがサポートされています.このオプションはGNU Cのいくつかの特色を禁止します. 例えばasmまたはtypeofキーワード.-c ターゲットファイルのみをコンパイルして生成します.-DMACRO 文字列「1」でMACROマクロを定義します.-DMACRO=DEFN 文字列「DEFN」でMACROマクロを定義します.-E Cプリコンパイラのみを実行します.-g デバッグ情報を生成します.GNUデバッガはこの情報を利用することができる.-IDIRECTORY 追加のヘッダファイル検索パスDIRECTORYを指定します.-LDIRECTORY 追加の関数ライブラリ検索パスDIRECTORYを指定します.-lLIBRARY 接続時に指定した関数ライブラリLIBRARYを検索します.-m486 486に対してコード最適化を行います.-o FILE 指定した出力ファイルを生成します.実行可能ファイルを生成するときに使用します.-O0 最適化処理は行われません.-Oまたは-O 1 生成コードを最適化します.-O2 さらに最適化します.-O3 inline関数を含む-O 2よりもさらに最適化されています.-shared 共有ターゲットファイルを生成します.通常、共有ライブラリの作成時に使用されます.-static 共有接続の使用を禁止します.-UMACRO MACROマクロの定義を解除します.-w 警告情報は生成されません.-Wall すべての警告情報を生成します.
#DEMO#
Linuxで最も重要なソフトウェア開発ツールはGCCです.GCCはGNUのCとC++コンパイラです.実際、GCCは、C、C++、Object C(C言語のオブジェクト向け拡張)の3つの言語をコンパイルすることができます.gccコマンドを使用すると、CとC++ソースプログラムを同時にコンパイルして接続できます.
#DEMO#: hello.c
2つ以上のCソースファイルがある場合は、GCCを使用して実行可能ファイルをコンパイル、接続、生成することもできます.たとえば、main.cとfactorial.cの2つのソースファイルがあるとします.次に、乗算を計算するプログラムをコンパイルします.
リストfactorial.c
- #include <stdio.h>
- #include <stdlib.h>
-
- int factorial (int n)
- {
- if (n <= 1)
- return 1;
-
- else
- return factorial (n - 1) * n;
- }
インベントリ メール.
- #include <stdio.h>
- #include <stdlib.h>
-
- int factorial (int n);
-
- int main (int argc, char **argv)
- {
- int n;
-
- if (argc < 2) {
- printf ("Usage: %s n
", argv [0]);
- return -1;
- }
- else {
- n = atoi (argv[1]);
- printf ("Factorial of %d is %d.
", n, factorial (n));
- }
-
- return 0;
- }
次のコマンドを使用して、コンパイルして実行可能ファイルを生成し、プログラムを実行します.
$ gcc -o factorial main.c factorial.c $ ./factorial 5 Factorial of 5 is 120.
GCCはCプログラムとC++プログラムを同時にコンパイルするために使用することができる.一般に、Cコンパイラは、ソースファイルの接尾辞名によって、CプログラムかC++プログラムかを判断する.Linuxでは、Cソースファイルの接尾辞名は.cであり、C++ソースファイルの接尾辞名は.Cまたは.cppである.
ただし、gccコマンドはC++ソースファイルのみをコンパイルでき、C++プログラムで使用するライブラリに自動的に接続できません.したがって、通常、g++コマンドを使用してC++プログラムのコンパイルと接続を完了し、このプログラムは自動的にgccを呼び出してコンパイルを実現する.次のC++ソースファイル(hello.C)があるとします.
- #include <iostream.h>
- void main (void)
- {
- cout << "Hello, world!" << endl;
- }
g++コマンドを呼び出して実行可能ファイルをコンパイル、接続し、生成できます.
$ g++ -o hello hello.C $ ./hello Hello, world!
2. gcc/egcsの主なオプション
表1-3 gccコマンドの一般的なオプション 解釈-ansi ANSI標準のC構文のみがサポートされています.このオプションはGNU Cのいくつかの特色を禁止します. 例えばasmまたはtypeofキーワード.-c ターゲットファイルのみをコンパイルして生成します.-DMACRO 文字列「1」でMACROマクロを定義します.-DMACRO=DEFN 文字列「DEFN」でMACROマクロを定義します.-E Cプリコンパイラのみを実行します.-g デバッグ情報を生成します.GNUデバッガはこの情報を利用することができる.-IDIRECTORY 追加のヘッダファイル検索パスDIRECTORYを指定します.-LDIRECTORY 追加の関数ライブラリ検索パスDIRECTORYを指定します.-lLIBRARY 接続時に指定した関数ライブラリLIBRARYを検索します.-m486 486に対してコード最適化を行います.-o FILE 指定した出力ファイルを生成します.実行可能ファイルを生成するときに使用します.-O0 最適化処理は行われません.-Oまたは-O 1 生成コードを最適化します.-O2 さらに最適化します.-O3 inline関数を含む-O 2よりもさらに最適化されています.-shared 共有ターゲットファイルを生成します.通常、共有ライブラリの作成時に使用されます.-static 共有接続の使用を禁止します.-UMACRO MACROマクロの定義を解除します.-w 警告情報は生成されません.-Wall すべての警告情報を生成します.
#DEMO#