- ベストアンサー
いまFortranでプログラミングを勉強しています.g95というフリー
いまFortranでプログラミングを勉強しています.g95というフリーソフトを使っているのですが,「ld:cannot open output file a.exe:permission denied」というようなエラーが出ます. でも,ソースファイルを別のディレクトリに移すとエラーは出なくなりました.また,再起動するとエラーが出ていたディレクトリでも実行ができました.どういうことなのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
a.exeってことは、WIndows上でCygwinかMinGWか、ってことでしょうか。 エラーが出たとき、a.exeを実行中だったりしませんでしたか? g95はソースをコンパイルして最終的に実行ファイルにします。そのためには、ソースファイルから作られた以外にも、いろんなライブラリ等も必要です。 この、いろんなファイルをまとめるのをリンクといい、それを行うプログラムをリンカと言います。 メッセージにある ld は、そのリンカです。それがa.exeに出力できなかった、というエラーです。 permissin denied は、書き込み許可がない、ということですが、これには次の理由が考えられます 1)ファイルへの書き込み権限がなかった 2)そのファイルが使用中でロックがかかっていた 1)については、再起動だけでエラーが出なくなったことを考えれば、今回はあてはまらないと思います。(でも、ファイルの権限については勉強しておいてください) なので、おそらく2)でしょう。 Windowsでファイルを削除しようとして「使用中の項目を含むため云々」と言われたことがあるかと思います。あの状態です。 ・別ウィンドウで実行中だった ・途中で止めたつもりが止ってなかった(Ctrl-Cで止めたつもりでCtrl-Zでバックグラウンドになってた) ・ウイルスソフトがスキャン中だった など、要因は考えられますが、今となってはわかりません。
その他の回答 (1)
- SaKaKashi
- ベストアンサー率24% (755/3136)
そのディレクトリに書き込み権限がないのです。 そういう基本的なことは本でも買って勉強してください。
お礼
わかりました.ありがとうございます.
お礼
自分の勉強不足ですね.ありがとうございました.