• 締切済み

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

f-tomohikoの回答

回答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
質問者

お礼

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

関連するQ&A

  • C言語初心者です。コマンドプロンプトのコンパイルが出来ません。

    C言語初心者です。コマンドプロンプトのコンパイルが出来ません。 教習所ではVisual studio 2008を用いてたので"cl"で出来たのですが、 自宅のパソコンのコマンドプロンプトでsoccer.cというファイルを作り、コンパイラしても「'cl'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません」というエラーがでてしまいます。 Visual studioではありません。ノートPCに元から入ってた既存のコマンドプロンプトを使ってます。 なのでソフト名は分かりません。使ってるパソコンはwindowsです。 どなたかコンパイルの方法を教えてください!

  • コマンドプロンプト cをコンパイルしたい

    今、C++でプログラムを作成し、コマンドプロンプトでコンパイルしようとしました。 C:\保存先> cl ファイル名.cpp このように入力すると 「バッチファイルとして認識されていません」の表示がでてしまいます。 この場合どうすればよいのでしょうか? 初歩的なことでしょうが、よろしくお願いいたします。

  • コンパイルできない "clは内部コマンド・・・

    独習Cという本を見て Microsoft.NET Framework SDK2.0のインストールとBorland C++ Compiler5.5をインストールして環境変数のPathの変数値の末尾に「;c:\borland\bcc55\Bin」と入力して設定したのですが、コマンドプロンプトでprog.cというファイルを作り、コンパイラすると「clは内部コマンド...」というエラーがでます。 パソコンの環境はvistaを使用し、秀丸エディタでファイルは作りました。 コマンドプロンプトに 「C:\Users\ユーザー名>cl prog.c」としたのですが何か根本的に間違えているのでしょうか?教科書を見る限りこれ以上設定する項目はないのですが。

  • コンパイルできない

    C言語のプログラムをはじめたばかりの初心者ですが、 "smp1.c"というソースファイルをメモ帳でつくり、コマンドプロンプトで上でコンパイルしようとしたのですが、うまくいきません。 smp1.cファイルの内容は #include <stdio.h> int main(void) { printf("Hello\n"); return 0; } となっています。cworkというディレクトリにすべてのプログラムを保存しています。 コマンドプロンプト上でcworkディレクトリに移動し"C:\cwork>" の後に ”cl smp1.c ” とタイプしてenter を押しても 'cl' is not recognized as an internal or external command, operable program or batch file. と表示されコンパイルできません。 一体どうすればいいでしょうか? 初心者なので説明不足かもしれませんが その際は補足しますので、どうが教えてください.

  • 分割コンパイルのリンク時のファイル名の指定法

     Visual Studioコマンドプロンプト(2010)で、分割コンパイルを試みています。自分で調べて、次のことまでは分かりました。 ソースファイル “1.c” “2.c” “3.c” がある。それぞれ、リンクはせずにコンパイルだけ行うには、 “cl /c 1.c”で、“1.obj”が生成する。 “cl /c 2.c”で、“2.obj”が生成する。 “cl /c 3.c”で、“3.obj”が生成する。 これらを、次のようにリンクすると、 “link 1.obj 2.obj 3.obj” ↓ “1.exe” が生成する。  この最後のリンクのところで、“1.exe”でも“2.exe”でも“3.exe”でもない別のファイル名(“program.exe”など)に、実行ファイルを指定したいのですが、 “link /?” を見てみると、どのオプションを指定すればいいか分かりません。どなたか、ご教授ください。お願い致します。

  • clでのコンパイル結果を取得

    clでのコンパイル結果を取得 C#でファイル名と必要なオプションを設定して、ボタンを押すと自動的にファイルをコンパイルしてくれるようなものを作りたいのですが、コンパイルはできたのですが、どこでエラーがでたのかという処理中のデータを表示したいのですが、よくわかりません。ご教授の方、よろしくお願いします。 ちなみにコンパイルするファイルはC言語のファイルです。

  • コマンドラインからのコンパイル(VC++6.0)

    再度利用させていただきます。 Visual C++ を利用してコマンドラインからコンパイルをできずにいます。 勿論、VCVARS32.bat を実行し、環境変数の初期サイズを 4096 以上に設定してはいますが、 コンパイル(cl *.c)を実行しますと, "コマンドまたはファイル名が違います." と表示されてしまいます。 さらに必要な設定がありましたら、 恐れ入りますが詳しく教えて頂けますでしょうか。 こちらの環境は、 PC  PC9821 OS Win95 VC++ 6.0 どうぞよろしくお願いします。

  • コンパイルできません

    メモ帳に簡単なプログラムを書いて保存した所、拡張子が.txtになってしまったためかMS-DOSプロンプトでコンパイルしようとしたのですが、「コマンドまたはファイル名が違います」とエラーが出てしまいました。参考書のとおりにやっているのですが、うまくきません。どうすればコンパイルできるのでしょうか?

    • ベストアンサー
    • Java
  • コンパイルについて

    教本と見合わせながら、何度もコンパイルを試みているのですが、上手くいきません。 MS-DOSプロンプトの画面には、 C:\JAVA>javac app.java と,正確にファイル名を記入しているのですが、 何度試みても「コマンドまたはファイル名が違います」と表示されます。 会社のコンピューターでは上手くいき、先程からファイルのclass名、拡張子等、何度も確認していますが、どのファイルで試しても、 「コマンド~」の表示がでます。 助けて下さい。

  • コンパイルできない

    c言語をはじめたばかりの初心者です。"typ.c"というソースファイルをメモ帳でつくって、コマンドプロンプト上でコンパイルしようとしたのですが、うまくいきませんでした。typ.cファイルの内容は *typ.c*/ #include <stdio.h> #include <stdlib.h> /*for exit()*/ int main(void) { FILE *fin, *fout; char buf[256]; char filename1[80], filename2[80]; printf("入力ファイル名="); gets(filename1); printf("出力ファイル名="); gets(filename2); fin = fopen(filename1, "r"); if (fin == NULL){ printf("%sをオープンできません\n", filename1); exit(1); } fout = fopen(filename2, "w"); if (fout == NULL){ printf("%sをオープンできません\n", filename2); exit(1); } while (fgets(buf, 256, fin) != NULL){ fputs(buf, fout); } fclose(fin); fclose(fout); return 0; } となっています。 いざコマンドプロンプト上でコンパイルしようとすると  C:Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(189) : error C20 27: 認識できない型'PostAttribute'が使れています。 c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : 'PreAttribute'の宣言を確認してください。 という注意書きが大量にでてきて最後に C:Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(239) : fatal err or C1003: プログラム内のエラーが100個を超えました。コンパイルは中断されます。                         となってしまいます。 使っているOSはwindows vista で コンパイラはMicrosoft Visual C++ 2008 Express Edition です。 どうしたらよいのかわかりません。 どうか教えてください。 説明に不足があればまた足しますのでよろしくお願いします。