こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

投稿日時 - 2009-12-09 01:58:43

QNo.5508811

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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窓を開くたびに実行しなければなりませんが、それがいやなら
ログインユーザの環境変数設定を変更して下さい。

 以下はリタイアしたプログラマの戯言です。
 プログラムを作ってお金もらおうと目指している人は、ログイン名、
コンピュータ名に日本語/空白/'-'マイナスなどの特殊文字を使っては
いけません、将来あなたが使うプログラムのバグの為に下らない時間を
使う可能性を自分から増やす行為です。

投稿日時 - 2009-12-09 19:11:00

お礼

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

投稿日時 - 2009-12-28 11:13:26

ANo.2

 コマンドプロンプトからSETコマンドを入力して結果を貼り付けて貰えれば
いいアドバイスが出来る人がたくさんいるはずです。

 私の推測
 TEMP=C:\Users\nantara
 と表示されるんでは?
 そして、C:\Users\nantara は実在しないんでは?
 
 MKDIR C:\Users\nantara を実行したら解決するとか?・・・・・・・

投稿日時 - 2009-12-09 05:25:35

補足

ご回答ありがとうございます!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というフォルダのままのようです。いったいどうすればいいでしょうか…

投稿日時 - 2009-12-09 09:47:30

ANo.1

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

投稿日時 - 2009-12-09 02:12:14