- ベストアンサー
FortranのG95コンパイルエラー
- FortranのG95コンパイルエラーについて
- エラーメッセージ「libf95.a(main.o)」の意味と解決方法
- XPのSP3でのG95コンパイルエラーの対処法
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ソースプログラムから実行プログラムを作るには,大きく分けて「コンパイル」と「リンク」という手順を踏む。 g95というコマンドはその2つの手順の両方を順番に行う。 「コンパイル」だけなら,ひとつのサブルーチンだけを与えてもエラーにはならないが,それでは実行可能なプログラムはできない。すべてのサブルーチンとメインルーチンをコンパイル,リンクすることが必要である。 書かれているエラーメッセージから推測すると,あなたのやっていることはたとえば g95 data1.f のように,ひとつのルーチンだけで実行可能なプログラムを作れと言っているようだ。これでは必要なサブルーチンがないと怒られて当然だろう。 g95 data1.f data2.f data3.f data4.f datmake.f elemdat.f graph-r.f smart-graph.f topology.f とすべてのファイルを指定してコンパイル,リンクすることが必要である。(もちろんこれ以外に必要なものがあればそれも)
その他の回答 (1)
- f272
- ベストアンサー率46% (8467/18126)
そのソースプログラムにはちゃんとmain programがあるの? ソースプログラムのファイル名は? プログラムは固定書式かそれとも自由書式か?
お礼
回答ありがとうございます。 おかげで間違いに気付くことができ、一歩前進できました。
補足
ファイル名は「data1.f」です。 改めて技術書を見直したらどうやらこれはサブルーチン?らしく本体では無かったようです。 本体らしき「datmake.f」をコンパイルすると次のエラーが出ました。 C:\DOCUME~1\ユーザー名\LOCALS~1\Temp/ccTAKhwg.o:datmake.f:(.text+0x1fb1):undefined reference to `_elemdat_' C:\DOCUME~1\ユーザー名\LOCALS~1\Temp/ccTAKhwg.o:datmake.f:(.text+0x1fd5):undefined reference to `_topology_' C:\DOCUME~1\ユーザー名\LOCALS~1\Temp/ccTAKhwg.o:datmake.f:(.text+0x1ff5):undefined reference to `_data2_' C:\DOCUME~1\ユーザー名\LOCALS~1\Temp/ccTAKhwg.o:datmake.f:(.text+0x2015):undefined reference to `_data3_' C:\DOCUME~1\ユーザー名\LOCALS~1\Temp/ccTAKhwg.o:datmake.f:(.text+0x202e):undefined reference to `_data4_' C:\DOCUME~1\ユーザー名\LOCALS~1\Temp/ccTAKhwg.o:datmake.f:(.text+0x2040):undefined reference to `_graphr_' C:\DOCUME~1\ユーザー名\LOCALS~1\Temp/ccTAKhwg.o:datmake.f:(.text+0x2052):undefined reference to `_selem_' C:\DOCUME~1\ユーザー名\LOCALS~1\Temp/ccTAKhwg.o:datmake.f:(.text+0x2064):undefined reference to `_spoin_' C:\DOCUME~1\ユーザー名\LOCALS~1\Temp/ccTAKhwg.o:datmake.f:(.text+0x20ae):undefined reference to `_data1_' 同じフォルダには data1.f data2.f data3.f data4.f datmake.f dims.i (計算に必要な数値?らしきものが記述) elemdat.f graph-r.f smart-graph.f (中身にspoin,selemが記述されていた) topology.f が入ってます。 「ccTAKhwg.o」というファイルは付属していませんでしたし,ソースファイル内にも「ccTAKhwg」の記述はありませんでした。PC全体でファイル検索してもありませんでした。 Fortranというプログラムはこの本ではじめて知った物なのでまったくの素人です。そもそもプログラミングそのものも多少かじった程度でほとんど知りません。 質問の回答にはどんな情報が必要かわからないので、もしかしたら足りないのかもしれません。 プログラムの中身を見てもらった方が手っ取り早いのかもしれませんが自分で作った物ではないのでそれも出来ません。 分かりにくいかもしれませんがアドバイスをよろしくお願いします。
お礼
exeファイルが作れました。 同じ場所にファイルが有ればメインをコンパイルすると他のとまとめてコンパイルしてくれると思っていました。 全部指示しなければならないんですね。 おかげで解決しました。 ありがとうございました。