- ベストアンサー
C言語のコンパイルができません
http://www.c-lang.org/primer.html 上記サイトのC入門用プログラム「hello.c」と言うソースのコンパイルを試みたのですが、エラーが出てしまいコンパイルできません。OSはwindows7でコンパイラはMinGWです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> ld.exe: cannot open output file a.exe: Permission denied Cコンパイラは、何段階かに動作が別れていて、その最後が「リンク」と呼ばれる作業です。これで最終的な実行ファイルになります。それを行うのが「リンカ」というもので、ldはリンカです。特に指定しなければ、gccを実行すると、リンカまで順番にやってきれます。 エラーは、メッセージにある通り、a.exeに書き込めない、というものです。 原因としては ・a.exeファイルの書き込み/削除権限が無いため ・a.exeが使用中でロックがかかっているため ・(a.exeファイルが存在しないのなら)そのディレクトリの書き込みが無いため が考えられます。 ・a.exeがあったら削除する ・ファイルやディレクトリのプロパティでセキュリティタグから権限を確認する。今利用中のユーザーでフルコントロールできるかどうか というあたりを確認してみましょう。
その他の回答 (2)
- kmee
- ベストアンサー率55% (1857/3366)
> エラーが出てしまいコンパイルできません そういうときは、まず、エラーメッセージを読むことから始めてください。 こういうところで質問する際にも、できるかぎり、そのままコピペするようにしてください。 そうでないと、答えが噛み合わないことになったり、エラーメッセージを見ればすぐに答えられる質問を何度も聞きかえさないといけなかったり、と、とても非効率的です。 さて、こっちでもコンパイルしてみましたが、手許のgccでは「警告(warning)」は出ますが、コンパイルには成功しますし、一応動作もします。あなたの言う「エラーが出てしまいコンパイルできません」というのは、エラーメッセージが出たことだけで判断していませんか? あるいは、そもそもコンパイラを使えるように設定していない、ということもあります 余談ですが、そのページだけ見ると、そこでCの勉強になるか、ちょっと疑問が残ります。
- DIooggooID
- ベストアンサー率27% (1730/6405)
> コンパイルできません。 この表現は、正しくなくて・・・ コンパイルしましたが、プログラムコードにエラーがあるので、 コンパイルが正常に終了しません・・・ ではありませんか?
補足
その通りです。
補足
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot open output file a.exe: Permission denied collect2: ld returned 1 exit status 上記がエラーメッセージです