プロが教える店舗&オフィスのセキュリティ対策術

http://www.c-lang.org/primer.html
上記サイトのC入門用プログラム「hello.c」と言うソースのコンパイルを試みたのですが、エラーが出てしまいコンパイルできません。OSはwindows7でコンパイラはMinGWです。

A 回答 (3件)

> ld.exe: cannot open output file a.exe: Permission denied



Cコンパイラは、何段階かに動作が別れていて、その最後が「リンク」と呼ばれる作業です。これで最終的な実行ファイルになります。それを行うのが「リンカ」というもので、ldはリンカです。特に指定しなければ、gccを実行すると、リンカまで順番にやってきれます。

エラーは、メッセージにある通り、a.exeに書き込めない、というものです。
原因としては
・a.exeファイルの書き込み/削除権限が無いため
・a.exeが使用中でロックがかかっているため
・(a.exeファイルが存在しないのなら)そのディレクトリの書き込みが無いため
が考えられます。

・a.exeがあったら削除する
・ファイルやディレクトリのプロパティでセキュリティタグから権限を確認する。今利用中のユーザーでフルコントロールできるかどうか
というあたりを確認してみましょう。
    • good
    • 1

> エラーが出てしまいコンパイルできません



そういうときは、まず、エラーメッセージを読むことから始めてください。
こういうところで質問する際にも、できるかぎり、そのままコピペするようにしてください。

そうでないと、答えが噛み合わないことになったり、エラーメッセージを見ればすぐに答えられる質問を何度も聞きかえさないといけなかったり、と、とても非効率的です。

さて、こっちでもコンパイルしてみましたが、手許のgccでは「警告(warning)」は出ますが、コンパイルには成功しますし、一応動作もします。あなたの言う「エラーが出てしまいコンパイルできません」というのは、エラーメッセージが出たことだけで判断していませんか?

あるいは、そもそもコンパイラを使えるように設定していない、ということもあります



余談ですが、そのページだけ見ると、そこでCの勉強になるか、ちょっと疑問が残ります。

この回答への補足

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
上記がエラーメッセージです

補足日時:2011/09/02 21:18
    • good
    • 0

> コンパイルできません。



  この表現は、正しくなくて・・・

  コンパイルしましたが、プログラムコードにエラーがあるので、
 コンパイルが正常に終了しません・・・

  ではありませんか?

この回答への補足

その通りです。

補足日時:2011/09/02 20:53
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!