タグ付けされた質問 「msvcrt」

5
LNK4098の解決:defaultlib 'MSVCRT'が競合します
この警告: LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library Visual Studioでかなり一般的な警告です。その正確な理由とそれを処理する正しい方法(あるとしても)を理解したいと思います。 これは、でコンパイルされたデバッグビルドで表示され/MDdます。プロジェクトは、ウィンドウVersion.dllなどpdh.dllにリンクされており、それ自体がとリンクしていMSVCRT.dllます。明らかに、これらのデバッグバージョンがなく、コンパイルできません。 だから私/NODEFAULTLIB:MSVCRTはリンカのコマンドラインに追加し、実際には警告を削除しました。しかし、これは実際に何をするのでしょうか?そして、なぜそれが必要なのですか?

7
/ MDまたは/ MTでコンパイルする必要がありますか?
Visual Studioには、コンパイルフラグ/ MDおよび/ MTがあり、必要なCランタイムライブラリの種類を選択できます。 実装の違いは理解していますが、どちらを使用するかはまだわかりません。長所/短所は何ですか? 私が聞いた/ MDの利点の1つは、これにより、誰かがランタイムを更新できるようになり(セキュリティの問題にパッチを当てるなど)、私のアプリがこの更新から恩恵を受けることです。私にとっては、これはほとんど機能ではないように見えます。新しいバージョンに対してテストすることを許可しない限り、ランタイムを変更したくないのです。 気になる点: これはビルド時間にどのように影響しますか?(おそらく/ MTは少し遅いですか?) 他の影響は何ですか? ほとんどの人はどちらを使用しますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.