[解決済み] MDと/MTのどちらでコンパイルすべきですか?
2022-05-15 11:27:21
質問
Visual Studio には、コンパイルフラグ /MD と /MT があり、どの種類の C ランタイムライブラリが必要かを選択することができます。
実装の違いは理解していますが、どちらを使うべきかまだ迷っています。長所と短所は何ですか?
私が聞いた /MD の利点の 1 つは、誰かがランタイムを更新することができ (セキュリティ問題のパッチなど)、私のアプリはこの更新から恩恵を受けることができるということです。しかし、私にとっては、これはほとんど非機能のように思えます。新しいバージョンに対するテストを許可せずにランタイムを変更されるのは困ります!
私が好奇心を抱いているいくつかのこと。
- これはビルド時間にどのように影響しますか。(おそらく /MT は少し遅くなるのでは?)
- 他の影響は何ですか?
- 多くの人が使っているのはどちらですか?
どのように解決するのですか?
MDと動的にリンクさせることで、解決します。
- は、システムの更新に (善かれ悪しかれ) さらされています。
- 実行ファイルをより小さくできる (ライブラリが組み込まれていないため)、そして
- 少なくとも DLL のコード セグメントは、それをアクティブに使用しているすべてのプロセス間で共有されると思います (消費される RAM の総量が減ります)。
また、実際には、異なるランタイム オプションでビルドされた、静的にリンクされたサード パーティのバイナリのみのライブラリを扱う場合、メイン アプリケーションの /MT は /MD よりはるかに頻繁に競合を引き起こす傾向があることがわかりました (C ランタイムが複数回静的にリンクされると、特にそれらが異なるバージョンの場合、問題に遭遇するためです)。
関連
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] C++でクラスと構造体はいつ使い分けるべきか?
-
[解決済み] Visual Studio の .suo と .user ファイルをソースコントロールに追加する必要がありますか?
-
[解決済み] ASP.NET MVCでビューをコンパイルする
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
-
[解決済み】共有オブジェクト(.so)、静的ライブラリ(.a)、DLL(.so)の違い?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)