next up previous contents
Next: 1.8 便利なオプション Up: 1. コンパイル、実行の仕方 Previous: 1.6 cco コマンド

1.7 -I, -L, -R

インクルード・ファイルやライブラリィ・アーカイブ・ファイルなどを システム標準のディレクトリィから読む場合、そのディレクトリィを 明示する必要がある。 インクルード・ファイルを探索するディレクトリィを指定するには -Iディレクトリィ とする。 ライブラリィ・ファイルを探索するディレクトリィを指定するには -Lディレクトリィ とする。

例えば、数学科 WS の環境で、GLSC を使うプログラムを コンパイルする場合、 /usr/local/include にある glsc.h と、 /usr/local/lib にある libglscd.a と、 /usr/local/X11R6.3/lib にある libX11.a が必要になるので、 例えば以下のようにする。
oyabun% gcc -I/usr/local/include -o graph graph.c -L/usr/local/lib
-L/usr/local/X11R6.3/lib -lglscd -lX11 -lm

数学科の WS では、環境変数を

setenv LD_LIBRARY_PATH /usr/local/X11R6.3/lib:/usr/local/lib:/usr/lib
のように設定してあるので、これで良いが、そうでなければ、 -R/usr/local/lib -R/usr/local/X11R6.3/lib も指定しなければ ならない。 ここまで来ると make を利用しないと面倒かもしれない。
Makefile
CC      = gcc
CFLAGS  = -I/usr/local/include
LDFLAGS = -L/usr/local/lib -R/usr/local/lib -L/usr/local/X11R6.3/lib -R/usr/local/X11R6.3/lib
graph: graph.c
        $(CC) $(CFLAGS) -o graph graph.c $(LDFLAGS)


next up previous contents
Next: 1.8 便利なオプション Up: 1. コンパイル、実行の仕方 Previous: 1.6 cco コマンド
Masashi Katsurada
平成18年4月28日