コンパイラ(gccコマンド)の使い方

gccはジーシーシーと読む.GNUが作成し,UNIX,Windowsなどで動作するフリー のコンパイラである.

ここでは,C言語をコンパイルする際のgccの利用方法を説明するが,C++の場合 にはgccというところをg++に変更すればほぼそのまま利用可能である.

イタリック体は,実行時には適当に変えること.ここでは,サンプルとし て,test.cをコンパイルしてtest.o(オブジェクトファイル)または test(実行ファイル)を作成する場合についての説明をする.

主なオプション一覧

注: #include <header.h>と記述したときは,これらのディレクト リからヘッダファイルを探すが,#include "header.h"と記述したときは カレントディレクトリをまず探し,その後でこれらのディレクトリから探す.

例:

  1. gcc test.c
    test.cをコンパイル,リンクしてa.outという 実行ファイルを作成する.
  2. gcc test1.c test2.c
    test1.ctest2.cをコンパイル,リンクしてa.outと いう実行ファイルを作成する.
  3. gcc -g test.c
    test.cをコンパイル,リンクしてa.outという 実行ファイルを作成する.その際にDEBUG用情報を付加する.
  4. gcc -o test test.c
    test.cをコンパイル,リンクしてtestという 実行ファイルを作成する.
  5. gcc -c test.c
    test.cをコンパイルして,test.oというオブジェクトファイル を作成する.
  6. gcc -c test1.c test2.c
    test1.ctest2.cをそれぞれコンパイルして,test1.otest2.oというオブジェクトファイルを作成する.
  7. gcc -g -c -o test.o test.c
    test.cをコンパイルして,test.oというオブジェクトファイル を作成する.その際にDEBUG情報を付加する.
  8. gcc -o test test.o
    test.oをリンクして,testという実行ファイルを作成する.
  9. gcc -g -o test test1.o test2.o
    test1.otest2.oをリンクして,DEBUG情報を付加し,test という実行ファイルを作成する.
  10. gcc -g -o test -lm test.o
    test.oと算術演算ライブラリ(libm.a)をリンクして,DEBUG情報を付加して, testという実行ファイルを作成する.
  11. gcc -g -o test -L. test.o -lgw
    test.oと(多分カレントディレクトリにある)libgw.aをリンクして,DEBUG情報 を付加し,testという実行ファイルを作成する.
  12. gcc -g -o test -L. -I.. test.o -lgw
    test.oと(多分カレントディレクトリにある)libgw.aをリンクして,DEBUG情報 を付加して,testという実行ファイルを作成する.その際に, ヘッダファイルは一つ上の階層のディレクトリも探す.
  13. gcc test1.c test2.o
    test1.cをコンパイルし,test2.oリンクしてa.outと いう実行ファイルを作成する.

誤った例:

  1. gcc -g -o test.c test.c
    test.cをコンパイルして,test.cというオブジェクトファイルを生 成しようとするが,test.cはソースファイルであるため,ソースファイル に上書きしようとして,ソースファイルを破壊する.
  2. gcc -g -c -o test test.c
    一見実行ファイルtestを生成したように見えるが,ここで生成しているの はオブジェクトファイルであるため,実行は出来ない.

戻る