2011-12-20 19 views
0

Windows XP Professional SP3にWindows SDK 7.1をインストールしました。今はインストールがOKかどうかを確認していますが、すでに問題があります。私はまだWindows SDK 7.1コマンドプロンプトから単純なhello world C++コードをcl.exeでコンパイルできません。ここでは、コマンドプロンプト出力のスナップショットです:Windows SDK 7.1コマンドプロンプトLNK1104

Setting SDK environment relative to C:\Program Files\Microsoft SDKs\Windows\v7.1\. 
Targeting Windows XP x86 Debug 


C:\Program Files\Microsoft SDKs\Windows\v7.1>cd /d "D:\My Documents\Sources" 

D:\My Documents\Sources>cl /EHsc /FeD:\Target\hello hello.cpp 
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 
Copyright (C) Microsoft Corporation. All rights reserved. 

hello.cpp 
Microsoft (R) Incremental Linker Version 10.00.30319.01 
Copyright (C) Microsoft Corporation. All rights reserved. 

LINK : fatal error LNK1104: cannot open file 'C:\Documents' 

私はDにhello.cppを動かしてみました:\と同じ結果になってしまいました。一方、CSC.exeは、同じコマンドプロンプトでhello worldのC#コードを問題なくコンパイルしました。私は今どうすればいい?

Visual Studioがインストールされていないことに注意してください。 Windows SDKをインストールして、Qt CreatorでVS2010用のQt Framework 4.8.0を使用し、SharpDevelopでC#の少しを学ぶことができます。

答えて

0

C:\Documents and Settings\を含むすべての環境変数値を二重引用符で囲むことをお勧めする人がいました。たとえば、Set ALLUSERSPROFILE="C:\Documents and Settings\All Users"Set USERPROFILE="C:\Documents and Settings\Ant Luc"などです。 %TEMP%%TMP%を除いては、システムプロパティ>詳細設定>環境変数で編集できなかったため、修正を実行するための元気な方法はありませんでした。だから私はC:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmdを編集し、右@ECHO OFF下に次の行を追加:

SET ALLUSERSPROFILE="C:\Documents and Settings\All Users" 
SET USERPROFILE="C:\Documents and Settings\Ant Luc" 
SET HOMEPATH="C:\Documents and Settings\Ant Luc" 
SET APPDATA="%USERPROFILE%\Application Data" 
SET TEMP="%USERPROFILE%\Local Settings\Temp" 
SET TMP="%USERPROFILE%\Local Settings\Temp" 

しかしCL.EXEとハローワールドコードをコンパイルするとき、私はその後、エラーC1083を得ました。必死でC:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmdを再度編集し、%TMP%の値をD:\ VSTEMPに変更し、D:\にVSTEMPという名前のディレクトリを作成し、ソースコードを再度コンパイルしようとしました。

私はVisual Studio 2010 Expressを好奇心から奪ってインストールし、Visual Studioのコマンドプロンプトを開いて、同じhello worldコードをコンパイルしようとしましたが、同じ回避策で修正した一連の問題に直面しました。結論:コンパイラ(またはリンカー)は、%TMP%の空白を正しく処理できません。単一の空白がないディレクトリを割り当てます。

私の設定で何が間違っているのかまだ分かりませんが、このような面倒なことはとにかく馬鹿に見えます。 FWIW、こんにちは、世界のコードがうまくコンパイルされるようにするために、私がフープを飛び越える最初のツールチェーンです。

関連する問題