- ベストアンサー
fortran:includeできないとエラーがでます
unix上にtelnetしてプログラムをつくっているのですが、fortranのプログラム中でinclude文を実行するとコンパイル時に Cannot open include file ’ヘッダーファイル名’ と出ます。 読み込むヘッダーファイルは市販のものをインストールしたものでこのファイルは/usr/includeにシンボリックリンクの形で存在しリンク先も存在します。ちなみにヘッダーファイル名を実在しないものにしても同じエラーメッセージが出ます。 なにが原因なのでしょうか。お心当たりのある方はよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>参照しているシンボリックリンクはじつは/usr/includeの1つ下のサブディレクトリにありました。しかし、No.1のパで/usr/include/'sub directry名' と指定してもエラーメッセージが/usr/include/「ヘッダーファイル」のままなので下にあればどこでもいいようですね。 うーん、フォートランのコンパイラによって違うんですが、Cannot openということはオープン出来ないと言う意味ですのでそれは尾あーミッションの問題なのかそこにファイルがないからなのかによります。 プログラム内のINCLUDE分の所にサブディレクトリを記述してやってもだめなんでしょうか?
その他の回答 (2)
- asuca
- ベストアンサー率47% (11786/24626)
>Cannot open include file '/usr/include/ヘッダーファイル名’ >に変わりました。何が問題なんでしょうか。 インクルードしたいファイルのパーミッションは大丈夫でしょうか? chmod 775 /usr/include/ヘッダーファイル名 で、どうでしょう
お礼
たびたびすみません。ありがとうございます。 すみませんが、参照しているシンボリックリンクはじつは/usr/includeの1つ下のサブディレクトリにありました。しかし、No.1のパで/usr/include/'sub directry名' と指定してもエラーメッセージが/usr/include/「ヘッダーファイル」のままなので下にあればどこでもいいようですね。 /usr/include内のはシンボリックリンクは lrwxrwxrwx です。参照されている本体は -rw-r--r-- なのですが、こういう場合どうなのでしょう。(ヘッダーファイルは実行されるものなんですか?それとも読み込むものでしょうか?)chmodはsu権限を持っていないので実行できないようです。
- asuca
- ベストアンサー率47% (11786/24626)
コンパイルオプションで -I path : /usr/include/ を付けてもダメでしょうか?
お礼
お返事ありがとうございました。 教えていただいたのを試してみたんですが、エラーが Cannot open include file '/usr/include/ヘッダーファイル名’ に変わりました。何が問題なんでしょうか。 もし、お心当たりありましたらまたお願いします。
お礼
どうもありがとうございました。 どうやら教えていただいた方法で読み込んでいるようです。実は、プログラム内に /usr/include/ファイル名 と書くところまではやっていたのですが、教えていただいたのは試してませんでした。 どうも大変お世話になりました。