• ベストアンサー

いまFortranでプログラミングを勉強しています.g95というフリー

いまFortranでプログラミングを勉強しています.g95というフリーソフトを使っているのですが,「ld:cannot open output file a.exe:permission denied」というようなエラーが出ます. でも,ソースファイルを別のディレクトリに移すとエラーは出なくなりました.また,再起動するとエラーが出ていたディレクトリでも実行ができました.どういうことなのでしょうか?

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

a.exeってことは、WIndows上でCygwinかMinGWか、ってことでしょうか。 エラーが出たとき、a.exeを実行中だったりしませんでしたか? g95はソースをコンパイルして最終的に実行ファイルにします。そのためには、ソースファイルから作られた以外にも、いろんなライブラリ等も必要です。 この、いろんなファイルをまとめるのをリンクといい、それを行うプログラムをリンカと言います。 メッセージにある ld は、そのリンカです。それがa.exeに出力できなかった、というエラーです。 permissin denied は、書き込み許可がない、ということですが、これには次の理由が考えられます 1)ファイルへの書き込み権限がなかった 2)そのファイルが使用中でロックがかかっていた 1)については、再起動だけでエラーが出なくなったことを考えれば、今回はあてはまらないと思います。(でも、ファイルの権限については勉強しておいてください) なので、おそらく2)でしょう。 Windowsでファイルを削除しようとして「使用中の項目を含むため云々」と言われたことがあるかと思います。あの状態です。 ・別ウィンドウで実行中だった ・途中で止めたつもりが止ってなかった(Ctrl-Cで止めたつもりでCtrl-Zでバックグラウンドになってた) ・ウイルスソフトがスキャン中だった など、要因は考えられますが、今となってはわかりません。

noname#237919
質問者

お礼

自分の勉強不足ですね.ありがとうございました.

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

そのディレクトリに書き込み権限がないのです。 そういう基本的なことは本でも買って勉強してください。

noname#237919
質問者

お礼

わかりました.ありがとうございます.

関連するQ&A