- ベストアンサー
致命的なエラー C1043について
こんにちは。お世話になってます。 コンパイラはMicrosoft Cです。 ある時点から、通常のnmakeコンパイルを実行した際、タイトルのようなメッセージがログに表示され、EXEファイルはもとより、OBJファイルが生成できなくなってしまいました。まったくもって原因が掴めません・・・ここ数ヶ月Cのコンパイルを行っていなかったのですが、以前はもちろん上記のコードでエラーを発生させたことはありませんでした。環境変数も変更は行っていません。 現状でマニュアルに記述されている指示(TEMPフォルダ内の掃除と属性確認)は済んでいます。 ちなみに、過去の作成資産を再コンパイルしても同様の現象が起き、現在はどんなPGも全くコンパイルが通りません。 Microsoft Cの動作環境です。 OS:Windows2000 他に使用している処理系:Visual Basic 4.0~6.0 です。 対処法をご存知の方がおられましたら、ご教授ください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
訂正 MS-DOSから“Document and Settings”のフォルダをみた場合“Docume~1”のように省略されてしまうから失敗するのかもしれません。MS-DOSのアプリケーションにスペース、日本語等は禁物です。
その他の回答 (6)
- kaha
- ベストアンサー率23% (41/177)
> これも関連があるのでしょうか? ディストリビューション ウィザードのことは知りません。 MS-Cの場合はnmakeでCL等ファイルの実行時に、コマンドラインのオプションとして、境変数TMP+ファイル名という形で渡して実行することが予想されます。MS-DOSの時代そのオプションの区切りはスペースでした。 その為の失敗でしょう。
- kaha
- ベストアンサー率23% (41/177)
> 変更したところ、なんと復旧しました!! よかったですね。 環境変数TMPの指定にスペースのあるフォルダを指定していたのが原因と思います。
お礼
kahaさん、再度ご回答ありがとうございます。最後に、本当にお忙しいところ恐縮なんですが、スペースのあるフォルダって、"Document and Settings"みたいなフォルダ名ということですよね?あと、フォルダパス指定変更前は動いていたとお伝えしましたが、実はこの間にVB6のディストリビューションウィザードを行ったことがあり、しかもTEMPフォルダパスに全角日本語が入っていたことでSetup.exeの作成に失敗していたことを忘れていました。これも関連があるのでしょうか?(ご存知だったらで結構ですので・・・)
- kaha
- ベストアンサー率23% (41/177)
>「MSVCVARS.BAT」があるのですよね? MSVCVARS.BATでなく、NEW-VARS.BATのようでした。 「NEW-VARS.BAT」はあるのですよね? Microsoft Cが使うのはTMPのようです。 DOSコマンドの「SET TMP」で確認してみたでしょうか? また、新たにTMPフォルダを「\WINNT\TEMP」以外に作成し、環境変数TMPをそちらのMPフォルダを指定してみてはどうでしょうか?
お礼
kahaさん、再度ご回答ありがとうございます。 よーく確認したら、"C700\BIN"下には".BAT"のファイルは一つもありませんでした・・・(^。^;)最初にも述べましたが、コンパイラのセットアップディスクを紛失したこともあり、インストーラを使ってないせいかもしれません。 また、DOSコマンドでの確認はしてませんでした・・・すみません。確認したところ、"%USERPROFILE%\Local Settings\Temp"となっていました。これを"D:\C700\TEMP"(ルートは"D:"にしてます)に変更したところ、なんと復旧しました!!ありがとうございます! しかし・・・この環境で今まで動いていたということは、原因はやはり指定フォルダの破損でしょうか・・・?
- kaha
- ベストアンサー率23% (41/177)
> テンポラリはTEMPとTMPがあると思いますが、両者と > も環境変数上はUSERPROFILE下のTEMP MS-DOSの頃のコンパイラですから、C:\WINNT\TEMPのようにスペースのない場所を指定すべきす。 それと、他の環境変数の内容ですがMicrosoft Cで使うものを文字列の先頭の方に持ってくるようにするとか。MS-DOSの時代あまり環境変数に長い文字列が設定されると想定されてないかもしれないから。 BINの中に環境変数を設定するバッチファイル「MSVCVARS.BAT」があるのですよね? これを実行してからnmakeをしてみてはどうですか?
お礼
kahaさん、ご回答ありがとうございます。言葉が足りなくてすみません・・・USERPROFILE下のTEMPとは、ユーザ環境変数のTEMP項目で、"..\WINNT\TEMP"もシステム環境変数で宣言されています。BIN下に"MSVCVARS.BAT"はありませんでした。ちなみにMicrosoft Cのコンパイル環境変数の設定は全て手入力で行いました。マシンへ環境の設定を行ったのは、マシンを購入した3年前で、2ヶ月ほど前までは異常なくコンパイルが可能でした・・・
補足
#2の方のご助言に従い、Windows2000標準機能の"ディスククリーンアップ"を行い、全てのテンポラリファイルを削除してOSを再起動し、再びコンパイルしましたが、現象は変わりませんでした・・・やはり今までのマシンへの変更の経緯を洗いなおしていくしかないのでしょうか・・・
- MunyaMunya
- ベストアンサー率26% (5/19)
HDDの空き容量は充分ありますか?充分ならばTEMPフォルダでなくTMPフォルダをクリアしてみてください。
お礼
MunyaMunyaさん、ご回答ありがとうございます。 HDDの空き容量ですが、全容量20GBに比して、空き容量は420MBです。恐縮ですが、以降、補足からお伝えします。
補足
環境変数で設定されているテンポラリはTEMPとTMPがあると思いますが、両者とも環境変数上はUSERPROFILE下のTEMPを記述してありますが・・・ 今回Cのコンパイルを行うまでのPCへの環境変更ですが、チャットソフト"Skype"を常駐させていることと、ブラウザをIE6からSleipnirに変更。FDDをUSB接続の外付けに変更しています。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
ハードウェア、特にHDの異常が考えられます。 # あくまで'可能性'です。
お礼
epistemeさん、ご回答ありがとうございます。 ハード面の異常は意外ですね。可能性があるとすると、HDDの場合ならクラスタ損傷などでしょうか? 一度スキャンディスクしてみた方が良いのでしょうか?
お礼
kahaさん、度々のご回答本当にありがとうございます。#6については、確かにMAKEFILEの記述などで行やスペースを空けるなど制約がありましたね(全く詳しくないですが)ファイル名称のスペースが不具合を起こすとは知りませんでした。マニュアルを読み返してみます・・・本当にお忙しいところ、詳しくお答え戴き、ありがとうございました!