プロが教えるわが家の防犯対策術!

初めて投稿させていただきます。
MacOS X 10.5上でgfortranを使用しているのですが、サブルーチンが実行できなくて困っています。メインプログラム(main.f90)とサブルーチン(fast.f90)を同一フォルダ内に置き、ターミナル上でコマンド

$ gfortran main.f90

によってコンパイルを実行したところ、

Undefined symbols:
"_fast_", referenced from:
_MAIN__ in ccz2x6RV.o
_MAIN__ in ccz2x6RV.o
ld: symbol(s) not found

というメッセージが出てコンパイルが失敗してしまいます。サブルーチンが認識されていないということは分かるのですが、それ以上のことはさっぱり分かりません。ご助力願います。
なお、プログラムの内容は高速フーリエ変換です。また、サブルーチンを用いないプログラムに関しては既に正常に動作することを確認しています。

A 回答 (1件)

そりゃあそのコマンドだと


「main.f90 から実行ファイル a.out を作ってね」
って意味だからサブルーチンが不足するでしょうね. 方法はいろいろあるけど
・あとの応用のきかない方法としては「必要なソースファイルを全部並べる」
・ちょっと応用が利く方法としては「先に各ソースファイルをコンパイルだけしておき最後にまとめてリンク」
・最終的には「上のことを Makefile に書いて make だけですむようにする」
あたりで.
    • good
    • 0
この回答へのお礼

アドバイスしていただきありがとうございます。
どうやらUNIXに関して勉強不足だったようです。
しっかり調べてまたトライしてみます。

お礼日時:2009/06/07 16:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!