visual studio : dll, def から lib を作成

Windows において C++ で dll を使用したプログラムを作成する時,その dll と対となる lib ファイルを明示的に読み込ませる必要がありますよね.

#pragma comment(lib, "sqlite3.lib")

こんな感じに.
だがしかし,ライブラリによっては,dll しか配布されていないものもあります.
上記の sqlite3 は,データベースの一種なのですが,これもその一つになります.
ほかにも,fftw とかは,dll しか配布されていなかったような気がします.

ただ,その場合は,def ファイルなるものが配布されている場合が多く,def ファイルと dll ファイルとで,lib ファイルを生成することが可能です.

lib ファイルの生成

lib.exe というプログラムを使用し,それを行うのですが,このlib.exe は,通常のコマンドプロンプトには含まていません.
そこで,visual studio に含まれるコマンドプロンプトを使用します. スタートメニューから,「すべてのプログラム」を選択し,インストールされているvisual studio (フォルダのアイコンになっているもの)を選択します.
すると,visual studio tools というフォルダがありますので,それを開き,その中にあるコマンドプロンプトを使用します.
そのコマンドプロンプトを開き,dll と def ファイルがあるフォルダに移動後,下記のコマンドを実行すると lib ファイルが生成されます.

lib /def:sqlite3.def

sqlite3.def のところは,適宜読み替えて下さい.