• ベストアンサー

fortran:includeできないとエラーがでます

unix上にtelnetしてプログラムをつくっているのですが、fortranのプログラム中でinclude文を実行するとコンパイル時に Cannot open include file ’ヘッダーファイル名’ と出ます。 読み込むヘッダーファイルは市販のものをインストールしたものでこのファイルは/usr/includeにシンボリックリンクの形で存在しリンク先も存在します。ちなみにヘッダーファイル名を実在しないものにしても同じエラーメッセージが出ます。 なにが原因なのでしょうか。お心当たりのある方はよろしくお願いいたします。

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

  • ベストアンサー
  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.3

>参照しているシンボリックリンクはじつは/usr/includeの1つ下のサブディレクトリにありました。しかし、No.1のパで/usr/include/'sub directry名' と指定してもエラーメッセージが/usr/include/「ヘッダーファイル」のままなので下にあればどこでもいいようですね。 うーん、フォートランのコンパイラによって違うんですが、Cannot openということはオープン出来ないと言う意味ですのでそれは尾あーミッションの問題なのかそこにファイルがないからなのかによります。 プログラム内のINCLUDE分の所にサブディレクトリを記述してやってもだめなんでしょうか?

toro2000
質問者

お礼

どうもありがとうございました。 どうやら教えていただいた方法で読み込んでいるようです。実は、プログラム内に /usr/include/ファイル名 と書くところまではやっていたのですが、教えていただいたのは試してませんでした。 どうも大変お世話になりました。

その他の回答 (2)

  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.2

>Cannot open include file '/usr/include/ヘッダーファイル名’ >に変わりました。何が問題なんでしょうか。 インクルードしたいファイルのパーミッションは大丈夫でしょうか? chmod 775 /usr/include/ヘッダーファイル名 で、どうでしょう

toro2000
質問者

お礼

たびたびすみません。ありがとうございます。 すみませんが、参照しているシンボリックリンクはじつは/usr/includeの1つ下のサブディレクトリにありました。しかし、No.1のパで/usr/include/'sub directry名' と指定してもエラーメッセージが/usr/include/「ヘッダーファイル」のままなので下にあればどこでもいいようですね。 /usr/include内のはシンボリックリンクは lrwxrwxrwx です。参照されている本体は -rw-r--r-- なのですが、こういう場合どうなのでしょう。(ヘッダーファイルは実行されるものなんですか?それとも読み込むものでしょうか?)chmodはsu権限を持っていないので実行できないようです。

  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.1

コンパイルオプションで -I path : /usr/include/ を付けてもダメでしょうか?

toro2000
質問者

お礼

お返事ありがとうございました。 教えていただいたのを試してみたんですが、エラーが Cannot open include file '/usr/include/ヘッダーファイル名’ に変わりました。何が問題なんでしょうか。 もし、お心当たりありましたらまたお願いします。

関連するQ&A