はじめに
Visual Studioでexeやdllを作成すると、自動的にMSVCR80.dllやMSVCR90.dllといったランタイムライブラリをリンクしてしまいます。
ランタイムライブラリが存在しない環境だと作ったexeやdllが動かないので、ランタイムライブラリに依存しないようにする方法をまとめました。
ランタイムライブラリに依存しているかを調べる
作成したexeやdllがランタイムライブラリに依存しているかを調べるには、dumpbin.exeを使います。
dumpbin.exeは、以下のディレクトリにあると思います。
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
使い方は、/importsオプションを指定して、exeやdllのファイル名を指定します
dumpbin.exe /imports sampleApp1.exe
dumpbinコマンドを実行した結果、以下のようにMSVCR80.dllやMSVCR90.dllがリンクされていると、依存しているということになります。
MSVCR90.dllに依存しないようにする
ランタイムライブラリに依存しないようにするには、以下の記事が参考になります。
プロジェクトのプロパティを開き、C/C++→コード生成→ランタイムライブラリを「マルチスレッド (/MT)」または「マルチスレッド デバッグ (/MTd)」に変更します。
リビルド後に、再度dumpbinコマンドで確認すると、MSVCR80.dllやMSVCR90.dllといったランタイムライブラリが表示されなることを確認してください。