ぼく用あれこれまとめ
ランタイムライブラリ
最終更新:
bokuyo
-
view
ランタイムライブラリ
ってなーに?
ランタイムタイブラリ
VisualC++での設定について
プロパティ>C/C++>コード生成>ランタイムライブラリ
たいていReleseするとき、よく「/MT」使うよね。/MTじゃないとVC++が入ってない環境で動かなかったり。
たいていReleseするとき、よく「/MT」使うよね。/MTじゃないとVC++が入ってない環境で動かなかったり。
/MD
- 通常のアプリケーション時の設定。
- 「_MT」と「_DLL」の2つを定義するから,「MD」
- 「_MT」=マルチスレッド対応バージョンのランタイムライブラリを使用
- 「_DLL」=DLL対応バージョンのランタイムライブラリを使用
- MSVCRT.libと静的にリンクする設定。
- しかし!!気をつけなければいけないのは、MSVCRT.libの中でMSVCR80.DLLを実行時に呼び出すので、この設定でビルドした場合、MSVCR80.DLLが実行時に必要になってくる。
- VC++を入れてる人はMSVCR80.DLLが付いてくるので特に関係ないが、ほとんどの人はMSVCR80.DLLを持ってない(?)ので、この設定でビルドしたアプリケーションは実行できない。
/MDd
- 「_MT」と「_DLL」と「_DEBUG」を定義するから「MDd」(DEBUGが小文字d)
- /MDとほぼ同じだけど、「MSVCRT.lib」じゃなく「MSVCRTD.lib」を静的にリンクさせる。MSVCRTD.libの「D」はDEBUGのデー。
/MT
- 通常のアプリケーション時の設定。
- 「_MT」=マルチスレッド対応のスタティックバージョンのランタイムライブラリを使用
- MSVCRT.libではなく、LIBCMT.libを.objファイルに挿入する。
/MTd
- /MTに「_DEBUG」を加えたもの。
- 「LIBCMT.lib」ではなく「LIBCMTD.lib」(~D.lib:_DEBUG用のライブラリ)を使用する。
/LD
- DLLを作成する時の設定。
- /MTをデフォルトで指定してるらしいけど、/MDを指定することもできる。
- 詳しくは MSDN - /MD、/MT、/LD (ランタイム ライブラリの使用) にて
- VS2010から使用されなくなりました。
/LDd
- /LDのデバッグ用。
- VS2010から使用されなくなりました。
関連項目
参考文献
.