• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FortranのG95コンパイルエラー)

FortranのG95コンパイルエラー

このQ&Aのポイント
  • FortranのG95コンパイルエラーについて
  • エラーメッセージ「libf95.a(main.o)」の意味と解決方法
  • XPのSP3でのG95コンパイルエラーの対処法

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8467/18126)
回答No.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 とすべてのファイルを指定してコンパイル,リンクすることが必要である。(もちろんこれ以外に必要なものがあればそれも)

Quasar0312
質問者

お礼

exeファイルが作れました。 同じ場所にファイルが有ればメインをコンパイルすると他のとまとめてコンパイルしてくれると思っていました。 全部指示しなければならないんですね。 おかげで解決しました。 ありがとうございました。

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.1

そのソースプログラムにはちゃんとmain programがあるの? ソースプログラムのファイル名は? プログラムは固定書式かそれとも自由書式か?

Quasar0312
質問者

お礼

回答ありがとうございます。 おかげで間違いに気付くことができ、一歩前進できました。

Quasar0312
質問者

補足

ファイル名は「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というプログラムはこの本ではじめて知った物なのでまったくの素人です。そもそもプログラミングそのものも多少かじった程度でほとんど知りません。 質問の回答にはどんな情報が必要かわからないので、もしかしたら足りないのかもしれません。 プログラムの中身を見てもらった方が手っ取り早いのかもしれませんが自分で作った物ではないのでそれも出来ません。 分かりにくいかもしれませんがアドバイスをよろしくお願いします。

関連するQ&A