5

Visual C++ 2008 で DLL を構築しています。ランタイムを静的に DLL にリンクしたいと考えています。そこで、プロジェクト オプションに入り、Runtime Library を に設定しましたMulti-threaded (/MT)。これは、過去に他のプロジェクトで常に機能していました。しかし、これをビルドすると、リストに MSVCR90.dll を表示する Dependency Walker が表示されます。

誰がそれを引き起こす可能性があるか知っていますか?

4

1 に答える 1

4

プロジェクト + プロパティ、リンカー、コマンド ライン。/verbose オプションを追加します。ビルド + リビルド。[出力] ウィンドウに、シンボルを検索するリンカが表示されます。msvcrt.lib に注意してください。これは、msvcr90.dll への依存関係を取り込むものです。

一般的な原因は、/MD でコンパイルされた .obj ファイルを 1 つ以上含む .lib をリンクすることです。msvcrt.lib への依存関係は、#pragma comment(lib, msvcrt.lib) ディレクティブで挿入されます。これにより、リンカ、入力、追加の依存関係で依存関係として明示的に指定せずに msvcrt.lib を検索するようにリンカに指示します。

于 2011-06-18T17:00:08.063 に答える