Visual Studio 2015のMicrosoft Visual C++ Build Toolsを個別に入れてみて実際のビルドには何が必要なのかを確認しました.
実行環境
項目 | バージョン |
---|---|
OS | Windows11 22H2 |
Visual Studio | 2015 |
インストーラーの取得
まずはVisual Studioの以前のバージョンを取得できるページに行き、2015のプルダウンを開きます.
ダウンロードとかかれたボタンをクリックするとバージョンごとのインストーラーのダウンロードページに移動します. 今回はビルドツールを個別に入れてみたいのでVisual C++ Build Tools for Visual Studio 2015 with Update3のDVDを選択してDownloadボタンを押します.
最低限のインストール
先ほど入手したisoファイルをエクスプローラーから開くとDVDドライブとして認識されるので、その中のVisualCppBuildTools_Full.exeを実行するとインストーラーが起動します. 今回はカスタムインストール->何もチェックせずにインストールします.
何もチェックしなくてもインストールすることで主に次のものがインストールされます. この時点ではVisual Studio 2015入れていませんが、Build Toolsを入れるだけでフォルダが作成されるようです(というよりはコンパイラ等はVisual Studioのフォルダに置かれる模様).
- Microsoft Visual C++のコンパイラおよびビルドツール (cl.exe、link.exe、dumpbin.exeなど)
- Microsoft Visual C++ビルドツール
- MS Build ツール
- ucrtフォルダ(ヘッダファイル用フォルダ)
- ucrtフォルダ(ライブラリファイル用フォルダ)
それぞれのインストール場所及び役割は次のようになります.
項目名 | インストール場所 | 役割 |
---|---|---|
MSVCコンパイラ及びビルドツール | C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin | コンパイラとバイナリツール. 実際にはアーキテクチャごとのツール群がもう一つ下の階層に存在する. |
MSVCビルドツール | C:\Program Files (x86)\Microsoft Visual C++ Build Tools | アーキテクチャごとにパスを指定するbatファイルが複数存在する. |
MSビルドツール | C:\Program Files (x86)\MSBuild\14.0\Bin | MSBuild.exeなど. Visual Studioでビルドするときに利用. |
ucrtフォルダ(ヘッダーファイル) | C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt | stdio.hなどの標準ライブラリ用のヘッダファイルが含まれる. |
ucrtフォルダ(ライブラリファイル) | C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt | アーキテクチャごとのフォルダに分かれてる. |
この状態でビルドをしてみるとどうなるでしょうか. ビルドを行うためにはMSVCビルドツールでアーキテクチャごとのプロンプトを開く必要があります. Homeボタン->すべてのアプリ -> Visual C++ Build Tools -> Native Build Tools Command Prompt を選択し、そのコンソール上で適当なcファイルをビルドしてみます.
ということで、この時点ではビルドに必要なファイルがまだそろっていないようです. ちなみに、コンパイルだけであれば成功しました.
また、Visual C++ Build Toolsのプロンプトではなく通常のコマンドプロンプトからコンパイルしようとすると、ヘッダーへのパスが通っていないらしくコンパイル時にエラーが出ました.
最後の悪あがきにcl.exe(link.exe)のnodefaultlibオプションを何個か試してみましたが、さすがにmainCRTStartupは必須だったので諦めました.
WinSDKのインストール
最低限のインストールではビルドができないことが判明したので、再びインストーラーを起動しWinSDKをインストールしましょう.
主なものとして次のものがインストールされます.
- WinSDKヘッダファイル
- WinSDKライブラリファイル
主なインストール場所及び役割は次の通りです.
項目名 | インストール場所 | 役割 |
---|---|---|
WinSDKヘッダファイル | C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0 | ヘッダファイルが存在. shared、ucrt、um、winrtフォルダに分かれている. |
WinSDKライブラリファイル | C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um | kernel32.libなどのファイルが置かれている.アーキテクチャごとのフォルダに分かれている. 各アーキテクチャごとにucrt、umフォルダが存在する. |
umフォルダが作成されていればkernel32.libもインストールされているはずです. WinSDKをインストールした状態であればビルドが通りました.
注意
WinSDKのバージョンとVisual Studioのバージョンは一対一対応ではありません. しかし、Visual Studioをインストールすると規定のWinSDKもインストールされるためVisual Studioをインストールする≒WinSDKをインストールするという認識でいいのではないでしょうか.