• ベストアンサー

致命的なエラー C1043について

こんにちは。お世話になってます。 コンパイラはMicrosoft Cです。 ある時点から、通常のnmakeコンパイルを実行した際、タイトルのようなメッセージがログに表示され、EXEファイルはもとより、OBJファイルが生成できなくなってしまいました。まったくもって原因が掴めません・・・ここ数ヶ月Cのコンパイルを行っていなかったのですが、以前はもちろん上記のコードでエラーを発生させたことはありませんでした。環境変数も変更は行っていません。 現状でマニュアルに記述されている指示(TEMPフォルダ内の掃除と属性確認)は済んでいます。 ちなみに、過去の作成資産を再コンパイルしても同様の現象が起き、現在はどんなPGも全くコンパイルが通りません。 Microsoft Cの動作環境です。 OS:Windows2000 他に使用している処理系:Visual Basic 4.0~6.0 です。 対処法をご存知の方がおられましたら、ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kaha
  • ベストアンサー率23% (41/177)
回答No.7

訂正 MS-DOSから“Document and Settings”のフォルダをみた場合“Docume~1”のように省略されてしまうから失敗するのかもしれません。MS-DOSのアプリケーションにスペース、日本語等は禁物です。

natural_aspirate
質問者

お礼

kahaさん、度々のご回答本当にありがとうございます。#6については、確かにMAKEFILEの記述などで行やスペースを空けるなど制約がありましたね(全く詳しくないですが)ファイル名称のスペースが不具合を起こすとは知りませんでした。マニュアルを読み返してみます・・・本当にお忙しいところ、詳しくお答え戴き、ありがとうございました!

その他の回答 (6)

  • kaha
  • ベストアンサー率23% (41/177)
回答No.6

> これも関連があるのでしょうか? ディストリビューション ウィザードのことは知りません。 MS-Cの場合はnmakeでCL等ファイルの実行時に、コマンドラインのオプションとして、境変数TMP+ファイル名という形で渡して実行することが予想されます。MS-DOSの時代そのオプションの区切りはスペースでした。 その為の失敗でしょう。

  • kaha
  • ベストアンサー率23% (41/177)
回答No.5

> 変更したところ、なんと復旧しました!! よかったですね。 環境変数TMPの指定にスペースのあるフォルダを指定していたのが原因と思います。

natural_aspirate
質問者

お礼

kahaさん、再度ご回答ありがとうございます。最後に、本当にお忙しいところ恐縮なんですが、スペースのあるフォルダって、"Document and Settings"みたいなフォルダ名ということですよね?あと、フォルダパス指定変更前は動いていたとお伝えしましたが、実はこの間にVB6のディストリビューションウィザードを行ったことがあり、しかもTEMPフォルダパスに全角日本語が入っていたことでSetup.exeの作成に失敗していたことを忘れていました。これも関連があるのでしょうか?(ご存知だったらで結構ですので・・・)

  • kaha
  • ベストアンサー率23% (41/177)
回答No.4

>「MSVCVARS.BAT」があるのですよね? MSVCVARS.BATでなく、NEW-VARS.BATのようでした。 「NEW-VARS.BAT」はあるのですよね? Microsoft Cが使うのはTMPのようです。 DOSコマンドの「SET TMP」で確認してみたでしょうか? また、新たにTMPフォルダを「\WINNT\TEMP」以外に作成し、環境変数TMPをそちらのMPフォルダを指定してみてはどうでしょうか?

natural_aspirate
質問者

お礼

kahaさん、再度ご回答ありがとうございます。 よーく確認したら、"C700\BIN"下には".BAT"のファイルは一つもありませんでした・・・(^。^;)最初にも述べましたが、コンパイラのセットアップディスクを紛失したこともあり、インストーラを使ってないせいかもしれません。 また、DOSコマンドでの確認はしてませんでした・・・すみません。確認したところ、"%USERPROFILE%\Local Settings\Temp"となっていました。これを"D:\C700\TEMP"(ルートは"D:"にしてます)に変更したところ、なんと復旧しました!!ありがとうございます! しかし・・・この環境で今まで動いていたということは、原因はやはり指定フォルダの破損でしょうか・・・?

  • kaha
  • ベストアンサー率23% (41/177)
回答No.3

> テンポラリはTEMPとTMPがあると思いますが、両者と > も環境変数上はUSERPROFILE下のTEMP MS-DOSの頃のコンパイラですから、C:\WINNT\TEMPのようにスペースのない場所を指定すべきす。 それと、他の環境変数の内容ですがMicrosoft Cで使うものを文字列の先頭の方に持ってくるようにするとか。MS-DOSの時代あまり環境変数に長い文字列が設定されると想定されてないかもしれないから。 BINの中に環境変数を設定するバッチファイル「MSVCVARS.BAT」があるのですよね? これを実行してからnmakeをしてみてはどうですか?

natural_aspirate
質問者

お礼

kahaさん、ご回答ありがとうございます。言葉が足りなくてすみません・・・USERPROFILE下のTEMPとは、ユーザ環境変数のTEMP項目で、"..\WINNT\TEMP"もシステム環境変数で宣言されています。BIN下に"MSVCVARS.BAT"はありませんでした。ちなみにMicrosoft Cのコンパイル環境変数の設定は全て手入力で行いました。マシンへ環境の設定を行ったのは、マシンを購入した3年前で、2ヶ月ほど前までは異常なくコンパイルが可能でした・・・

natural_aspirate
質問者

補足

#2の方のご助言に従い、Windows2000標準機能の"ディスククリーンアップ"を行い、全てのテンポラリファイルを削除してOSを再起動し、再びコンパイルしましたが、現象は変わりませんでした・・・やはり今までのマシンへの変更の経緯を洗いなおしていくしかないのでしょうか・・・

回答No.2

HDDの空き容量は充分ありますか?充分ならばTEMPフォルダでなくTMPフォルダをクリアしてみてください。

natural_aspirate
質問者

お礼

MunyaMunyaさん、ご回答ありがとうございます。 HDDの空き容量ですが、全容量20GBに比して、空き容量は420MBです。恐縮ですが、以降、補足からお伝えします。

natural_aspirate
質問者

補足

環境変数で設定されているテンポラリはTEMPとTMPがあると思いますが、両者とも環境変数上はUSERPROFILE下のTEMPを記述してありますが・・・ 今回Cのコンパイルを行うまでのPCへの環境変更ですが、チャットソフト"Skype"を常駐させていることと、ブラウザをIE6からSleipnirに変更。FDDをUSB接続の外付けに変更しています。

回答No.1

ハードウェア、特にHDの異常が考えられます。 # あくまで'可能性'です。

natural_aspirate
質問者

お礼

epistemeさん、ご回答ありがとうございます。 ハード面の異常は意外ですね。可能性があるとすると、HDDの場合ならクラスタ損傷などでしょうか? 一度スキャンディスクしてみた方が良いのでしょうか?

関連するQ&A