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

  
  
  
  
  1. #include <stdio.h> 
  2. #include <stdlib.h> 
  3.  
  4. int factorial (int n) 
  5.     if (n <= 1) 
  6.         return 1; 
  7.  
  8.     else 
  9.         return factorial (n - 1) * n; 

インベントリ  メール.

  
  
  
  
  1. #include <stdio.h> 
  2. #include <stdlib.h> 
  3.  
  4. int factorial (int n); 
  5.  
  6. int main (int argc, char **argv) 
  7.     int n; 
  8.  
  9.     if (argc < 2) { 
  10.         printf ("Usage: %s n
    "
    , argv [0]); 
  11.         return -1; 
  12.     } 
  13.     else { 
  14.         n = atoi (argv[1]); 
  15.         printf ("Factorial of %d is %d.
    "
    , n, factorial (n)); 
  16.     } 
  17.  
  18.     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)があるとします.

  
  
  
  
  1. #include <iostream.h> 
  2. void main (void
  3.     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#