next up previous contents
Next: C.5 LAPACK Up: C. Fortran と一緒に使う Previous: C.3.1 プログラム例

C.4 コンパイルの仕方

通常 cc で作成されるプログラムと、f77 で作成されるプログラムでは、使 用するライブラリィに相違がある。

大抵は f77 で使用するライブラリィの方が多い。 そこで f77 でコンパイルすると、うまく行くことが多い。

cc あるいは gcc を使ってコンパイル&リンクする場合には、 リンクするライブラリィをこちらで指定してやる必要がある (何もしないと、libc.a をリンクするだけのコンパイラーが多い)。 どういうライブラリィが必要か、cc の場合はなかなか分かりにくい。

FreeBSD 標準の f77 は f2c という Fortran → C トランスレーターが元に なっているもので、この場合 Fortran 用のライブラリィは libf2c.a という 名前になっている。 だから、 cc (gcc) に -lf2c というオプションを渡せば良いはず (なお、 数値計算をするので -lm はほとんどの場合に必須である)。

なお、g77 (GNU Fortran 77 compiler) は、 現時点ではライブラリィ関係は f2c を元にしていて、 やはり libf2c.a をリンクしているらしい。

cc と f77
oyabun% cc -c test1main.c
oyabun% f77 -c test1sub.f
oyabun% f77 -o prog test1main.o test1sub.o

gcc と g77 (1)
oyabun% gcc -c test1main.c
oyabun% g77 -c test1sub.f
oyabun% g77 -o prog test1main.o test1sub.o

gcc と g77 (2)
oyabun% gcc -c test1main.c
oyabun% g77 -c test1sub.f
oyabun% gcc -o prog test1main.o test1sub.o -lf2c


next up previous contents
Next: C.5 LAPACK Up: C. Fortran と一緒に使う Previous: C.3.1 プログラム例
Masashi Katsurada
平成18年4月28日