Visual Studio (VC++) で既定の /MD
オプション付きでビルドすると Visual C++再頒布可能パッケージを必要とする実行ファイルが出来上がります。
/MT
オプションに変更することで C ランタイムが静的リンクされ、 Visual C++再頒布可能パッケージを必要としない実行ファイルを作成することもできます。しかし、 C ランタイムを静的リンクすると実行ファイルのサイズが大きくなってしまいます。
Windows Driver Kit 7.1 に含まれているインポート ・ ライブラリー (msvcrt.lib
) をリンクすると、 C ランタイム (msvcrt.dll
) が動的リンクされます。msvcrt.dll
は Windows に標準で含まれているため Visual C++再頒布可能パッケージを追加インストールしなくてもプログラムを実行できるようになります。
Windows Driver Kit 7.1 をインストールする
Windows Driver Kit Version 7.1.0 にアクセスして Download
をクリックすると GRMWDK_EN_7600_1.ISO
のダウンロードが始まります。
GRMWDK_EN_7600_1.ISO
のダウンロードが完了したらマウントしてエクスプローラーで開いて、 KitSetup.exe
を実行します。
フィーチャーの選択では少なくとも Build Environment
と Tools
の 2 つにはチェックを入れて OK をクリックします。
インストール ・ パスはデフォルトのままで構いません。OK をクリックします。
ライセンスへの同意確認が表示されます。ライセンスをよく読んで同意する場合は、 左下の I Agree
にチェックを入れて OK をクリックします。
ファイルのコピーが始まるのでしばらく待ちましょう。ファイルのコピーが完了したら Finish をクリックします。
これで Windows Driver Kit 7.1 のインストールは完了です。
環境変数を設定してCコンパイラを使えるようにする
Windows Driver Kit 7.1 にはライブラリーやヘッダーファイルだけでなく、 C コンパイラも含まれています。環境変数を設定して C コンパイラを使えるようにしてみます。
コマンドプロンプトを起動して以下の SET
コマンドを実行していきます。バッチファイルにまとめておくと便利ですよ。
- 先頭の
SET DDK=
はインストールした実際のパスに合わせて適宜変更してください。 - ビルドするバイナリのビット数に合わせて下記のどちらか一方を実行します。
x86バイナリ(32ビット)をビルドする場合SET DDK=C:¥WinDDK¥7600.16385.1 SET PATH=%DDK%¥bin¥x86¥x86;%DDK%¥bin¥x86;%PATH% SET INCLUDE=%DDK%¥inc¥crt;%DDK%¥inc¥api SET LIB=%DDK%¥lib¥win7¥i386;%DDK%¥lib¥crt¥i386
x64バイナリ(64ビット)をビルドする場合SET DDK=C:¥WinDDK¥7600.16385.1 SET PATH=%DDK%¥bin¥x86¥amd64;%DDK%¥bin¥x86;%PATH% SET INCLUDE=%DDK%¥inc¥crt;%DDK%¥inc¥api SET LIB=%DDK%¥lib¥win7¥amd64;%DDK%¥lib¥crt¥amd64
cl.exe が使えるか確認する
環境変数を設定したら、 コマンドプロンプトで cl.exe
を実行してみます。バージョンなどの情報が出力されれば OK です。
簡単な Cプログラムをビルドする
以下の簡単なプログラムを hello.c
という名前で保存しておきます。
hello.c#include <stdio.h>
int main(int argc, char* argv[])
{
printf("Hello, World!!¥n");
return 0;
}
次のコマンドを実行してプログラムをビルドします。
cl.exe hello.c
ビルドが成功すれば hello.exe
が出来上がります。hello.exe
を実行してみましょう。
hello.exe
以上で、 Windows Driver Kit 7.1 のインストールと簡単なビルドは完了です。
Windows Driver Kit 7.1 にはコンパイラーも付属しているので、 簡単なプログラムであればこれだけでビルドすることもできます。
Visual Studio を使っている開発者であれば、 Visual Studio のライブラリ ディレクトリとインクルードディレクトリの先頭に Windows Driver Kit 7.1 のライブラリ ・ パスとインクルード ・ パスを含めることで msvcrt.dll
に依存する実行ファイルをビルドできるようになります。