ぼく用あれこれまとめ

ランタイムライブラリ

最終更新:

bokuyo

- view
管理者のみ編集可

ランタイムライブラリ

ってなーに?

ランタイムタイブラリ




VisualC++での設定について

プロパティ>C/C++>コード生成>ランタイムライブラリ
たいてい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


/LDd



関連項目



参考文献


.
記事メニュー
目安箱バナー