他の人の利益のために、私は私がしたことを含めますが。
Visual Studio(私の場合は2010)でLNK4204の警告を無視することはできないので、私のアプローチは、必要なもの(pdbファイル)を与えることでした。私の場合はオープンソースライブラリを使用していたので、pdbファイルをビルドするコードが既にあります。
ただし、デフォルトでは、すべてのPDFファイルに同じ名前を付けます。私の場合はvc100.pdbです。.libごとに.pdbが必要になるため、特に、約20の静的.libファイルを作成するImageMagikのようなものを使用している場合、これにより問題が発生します。1つのディレクトリに20個のlibファイル(アプリケーションのリンカーがライブラリをリンクするために参照する)を含めることはできず、20個すべての.pdbファイルを同じものと呼ぶことはできません。
私の解決策は、静的ライブラリファイルを移動して再構築し、プロジェクトに関して.pdbファイルに名前を付けるようにVS2010を構成することでした。このように、各.libは同様の名前の.pdbを取得し、プロジェクトで使用する1つのディレクトリにすべてのLIBとPDBを配置できます。
「デバッグ」構成のために、私は編集しました:
プロパティ->構成プロパティ-> C / C ++->出力ファイル->プログラムデータベースファイル名から
$(IntDir)vc $(PlatformToolsetVersion).pdb
次の値になるように:
$(OutDir)vc $(PlatformToolsetVersion)D $(ProjectName).pdb
これで、中間ディレクトリのどこかではなく、.pdbファイルが出力ディレクトリに書き込まれ、そこに.libファイルも書き込まれます。最も重要なのは、D + プロジェクト名のサフィックスで名前が付けられることです。つまり、各ライブラリプロジェクト、プロジェクト.libとプロジェクト固有の.pdbを生成します。
すべてのリリース.libファイル、デバッグ.libファイル、およびデバッグ.pdbファイルを開発システムの1か所にコピーできるようになりました。そのサードパーティライブラリをデバッグモードで使用するプロジェクトには、pdbがあります。デバッグモードで必要なファイル。