Windows SDK 7.1 / Visual C++ 2010 Expressには、VCBuildが含まれない

Visual Studioがなくても、Windows SDKさえあれば、最新のC++コンパイラ(Visual C++)が含まれているので、何でも開発ができます。

しかし、Windows SDK 7.1に含まれるサンプルプログラムはmakefileがないので、nmakeが使えず、msbuildとvcbuildで処理しようとしたところ、結構ハマりました。


以下の順番で解決。

  1. Windows SDK 7.1のmsbuildは、vcbuild(VC++ 10.0版)を呼ぼうとするが呼べず、Windows SDK 6.1(Windows 2008用)をダウンロードしてという謎エラーを吐く
  2. Windows SDK 6.1のvcbuild(VC++ 9.0版)を入れて、手動で環境変数を設定
  3. 再びWindows SDK 7.1のmsbuildを利用すると、旧版のvcbuildが認識できないキーワードに対し、リンカが警告を吐く(が動く)

Windows SDK 6.1を重複して入れるだけでも不愉快なのに、1と3が当たり前のように矛盾しやがる。Visual Studio 2010 Expressにも入ってない(フォルダがあるのに、該当ファイルだけない)ということは意図的に消してるんだろうな。

ATLサポートを外した件、リンク切れだらけの日本語MSDNページ(Bingをクリックさせたうえに、出てこない)の件などをみていると、開発者が離れていきそうですね。

何とかしてほしいものです。

Leave a Reply

4 Comments on "Windows SDK 7.1 / Visual C++ 2010 Expressには、VCBuildが含まれない"

Notify of
avatar
Sort by:   newest | oldest | most voted
Egtra
Guest

そもそもVisual Studio 2010には(Pro以上でも)vcbuild.exeがありませんよ。ご存じとは思いますが、Visual C++ 2010のプロジェクトファイル(.vcxproj)はVB/VC#と同じmsbuildで処理できるようになったためです。
Windows SDK 7.1のサンプルに付属するのはVC++ 2008プロジェクト形式なので、本記事のようにWindows SDK 6.1のvcbuildを使うか、VC++ 2010プロジェクトに変換してVS 2010/WinSDK 7.1のmsbuildを使うかしかないと思います。VS Pro以上だとdevenv.exeを使ってコマンドライン上でもプロジェクト形式の変換ができるみたいですが、Expressだとどうなんでしょうね。
http://msdn.microsoft.com/ja-jp/library/w15a82ay.aspx

konuma
Guest

コメントありがとうございます。理解できました。
結局、Windows SDK と一緒にインストールされるサンプルが、それ自身でビルドできないと・・・。
> VC++ 2010プロジェクトに変換して
この変換、どうせコケるんですよね・・・。
> Expressだとどうなんでしょうね。
2005のTeam Developerを個人で買ってしまいました。減価償却が終わるまで、仮想環境以外にExpressをいれる決心ができません。
/analyzeスイッチ、割と便利です。

siomusubi
Guest

Windows SDK 7.1 だけでサンプルプログラムをビルドするのはプロジェクトファイルを
VCUpgrade.exeを使ってアップグレードしてからMSBuildでビルドすればできましたよ。
Windows SDK 7.1 コマンドプロンプトから VCUpgrade [options] projectfile すると
新しいプロジェクトファイルが作成され、そのファイルをMSBuildで実行すると完成。

konuma
Guest

コメントありがとうございます。
>VCUpgrade [options] projectfile
Egtraさんも書かれていた、拡張子「.vcxproj」が出来、7.1のmsbuildがそのまま利用できました。
しかし、古いSDKを入れるよう促すエラーメッセージはがっかりです・・・。こいつのせいでハマってしまった。
お二方、ありがとうございました。

wpDiscuz