• 締切済み

clでコンパイルができません

C言語初心者です。VistaでMicrosoft Visual C++ 2008 Express Editionを使用しています。ことのあらましは以下の様です。 以前まではスタートメニューからVisual Studio 2008 コマンドプロンプトをひらいてディレクトリを移動しcl ファイル名でコンパイルしていたのですが、ある日突然fatal link error C:\Users\(私の苗字)を開けませんといったような表示が出るようになり、コンパイルができなくなりました。まずcファイルはC:直下のそれ用のフォルダに保存してあるので、なぜ(ユーザー名前)開こうとしているのかわかりませんでした。それからいろいろ調べて保存場所を変えたりいじったりしてはインストールしなおすということを繰り返したのですがうまくいかず、ユーザー名の苗字と名前の間にスペースがあるのが原因と考えてユーザー名変更したところ、Visual Studioからひらいたコマンドプロンプトなのに 「'cl'は、内部コマンドまたは外部コマンド、 捜査可能なプログラムまたはバッチ ファイルとして認識されていません。」 と表示されました。 おそらくいじった時に何か消してはいけないものを消したのではと思っているのですが、どうしたらいいでしょうか…どなたか、どうか教えてください。

みんなの回答

回答No.3

 実はMicrosoft Visual C++ 2008 Express Edition とやらを使った事無い んでまたまた憶測ですが、このエラーはリンカーが一時ファイルを吐き出そ うとして%TEMP%又は%TMP%ディレクトリを実際に有るか検査してみたら、 途中で開けなくなったので発生していると思われます。  ですからまず、   TEMP=C:\Users\苗字 ~1\AppData\Local\Temp  が実在する場合と、実在しない場合で対処が異なります。 (1)実在しない場合  MKDIRコマンドで作ってやりましょう。  MKDIR "\Users\苗字 ~1\AppData\Local\Temp"  エラーになる場合上位のディレクトリから順に作って下さい。 (2)実在する場合  リンカさんがバカで漢字か空白にだまされてパスをたどれない ので漢字/空白を含まないディレクトリをTEMPパスにします。  まずディレクトリを作ってやります。  MKDIR C:\TEMP  これは一度だけやればおしまいです。  %TEMP% と %TMP% を変更します。  SET TEMP=C:\TEMP  SET TMP=C:\TEMP  これはDOS窓を開くたびに実行しなければなりませんが、それがいやなら ログインユーザの環境変数設定を変更して下さい。  以下はリタイアしたプログラマの戯言です。  プログラムを作ってお金もらおうと目指している人は、ログイン名、 コンピュータ名に日本語/空白/'-'マイナスなどの特殊文字を使っては いけません、将来あなたが使うプログラムのバグの為に下らない時間を 使う可能性を自分から増やす行為です。

jetnindin
質問者

お礼

先ほどようやく解決できました! どうやら原因は漢字、スペースありのユーザー名と、パスがちゃんとしてなかったことののようです。 半角英数の新アカウントに移して環境変数を変更したらうまくいきました。 助言ありがとうございました!今後勉強に励みたいと思います!

回答No.2

 コマンドプロンプトからSETコマンドを入力して結果を貼り付けて貰えれば いいアドバイスが出来る人がたくさんいるはずです。  私の推測  TEMP=C:\Users\nantara  と表示されるんでは?  そして、C:\Users\nantara は実在しないんでは?    MKDIR C:\Users\nantara を実行したら解決するとか?・・・・・・・

jetnindin
質問者

補足

ご回答ありがとうございます!C:の下のc-langというフォルダにコンパイルしたいcファイルが入っている状態です。そこでsetと入力したら以下のようになりました。長文失礼します。 Setting environment for using Microsoft Visual Studio 2008 x86 tools. C:\Program Files\Microsoft Visual Studio 9.0\VC>cd C:\c-lang C:\c-lang>cl sono1.c Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. sono1.c Microsoft (R) Incremental Linker Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. LINK : fatal error LNK1104: ファイル 'C:\Users\苗字' を開くことができません。 C:\c-lang>set ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\苗字 名前\AppData\Roaming CLASSPATH=.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=苗字 名前-PC ComSpec=C:\Windows\system32\cmd.exe configsetroot=C:\Windows\ConfigSetRoot DevEnvDir=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE FP_NO_HOST_CHECK=NO Framework35Version=v3.5 FrameworkDir=C:\Windows\Microsoft.NET\Framework FrameworkVersion=v2.0.50727 HOMEDRIVE=C: HOMEPATH=\Users\苗字 名前 INCLUDE=C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE;C:\Program Files \Microsoft SDKs\Windows\v6.0A\include; LIB=C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;C:\Program Files\Microso ft SDKs\Windows\v6.0A\lib; LIBPATH=C:\Windows\Microsoft.NET\Framework\v3.5;C:\Windows\Microsoft.NET\Framewo rk\v2.0.50727;C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB; LOCALAPPDATA=C:\Users\苗字 名前\AppData\Local LOGONSERVER=\\苗字 名前-PC NUMBER_OF_PROCESSORS=2 OS=Windows_NT Path=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files\M icrosoft Visual Studio 9.0\VC\BIN;C:\Program Files\Microsoft Visual Studio 9.0\C ommon7\Tools;C:\Windows\Microsoft.NET\Framework\v3.5;C:\Windows\Microsoft.NET\Fr amework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 9.0\VC\VCPackages;C: \Program Files\Microsoft SDKs\Windows\v6.0A\bin;C:\Windows\system32;C:\Windows;C :\Windows\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;c:\Program Files\Mi crosoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS \Binn\;C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=0f0d ProgramData=C:\ProgramData ProgramFiles=C:\Program Files PROMPT=$P$G PUBLIC=C:\Users\Public QTJAVA=C:\Program Files\Java\jre6\lib\ext\QTJava.zip SESSIONNAME=Console SystemDrive=C: SystemRoot=C:\Windows TEMP=C:\Users\苗字 ~1\AppData\Local\Temp TMP=C:\Users\苗字 ~1\AppData\Local\Temp USERDOMAIN=苗字 名前-PC USERNAME=苗字 名前 USERPROFILE=C:\Users\苗字 名前 VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0\VC VS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\ VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0 windir=C:\Windows WindowsSdkDir=C:\Program Files\Microsoft SDKs\Windows\v6.0A\ 最初にアカウント名を苗字 名前と漢字でスペースをいれて設定しました。「LINK : fatal error LNK1104: ファイル 'C:\Users\苗字' を開くことができません。」とでるので、苗字 名前や、苗字 名前-PCというフォルダ名のスペースに問題があるのではと思い、これらの名前をスペースなしに変えればいいのではと思ったのですが、普通のファイルのようには名前を変えれず、アカウント名をmyoujinamaeと半角英数スペースなしに変更してみたのですが、まだ苗字 名前や、苗字 名前-PCというフォルダのままのようです。いったいどうすればいいでしょうか…

  • taka37777
  • ベストアンサー率30% (166/544)
回答No.1

コマンドプロンプトでエラーが出るのはclコンパイラのパス設定が足りないと思います。