/ MDdフラグでビルドされたライブラリ(libcef_wrapper_dll.lib)に対してリンクしようとしています。私のアプリケーションは/ MDdと/ CLRでビルドされているので、互換性があるはずです。プロジェクトは正常にコンパイルされますが、リンクすると、以下の非常に役に立たないエラーが発生します。
Error 1 fatal error LNK1318: Unexpected PDB error; OK (0) '' c:\Projects\Cef\CefSharp\libcef_dll_wrapper.lib 1 CefSharp
.LIB用の.PDBファイルがありません。必要ですか?
プロジェクトの一時ファイルをすべて削除する必要があることが判明しました。キャッシュなど、デバッグシンボルサーバーを強制終了し、ウィンドウを再起動します。
これは私のために働いた:プロジェクトのプロパティ-> C/C++->コード生成->関数レベルリンクを有効にする->はい
LNK1318:予期しないPDBエラーを見ました。リンク時の不明(24)。
大きな出力のリンクが2つ以上同時に発生した場合に発生しました。mspdbsrc.exeはますます多くのメモリを使用し、2ギガ程度をヒットしてからクラッシュしました。
プロジェクトを再構築することで問題は解決しました
私にとって最善の解決策は、常にシンボルサーバーを単に強制終了することでした。これを行うためのバッチファイルがデスクトップにあります。
@for /F "tokens=2 delims= " %%I in ('tasklist^|findstr /I "mspdbsrv.exe"') do taskkill /F /PID %%I>NUL && echo Process killed.
次のようなビルドエラーも発生しました。LINK:致命的なエラーLNK1318:予期しないPDBエラー。
これについて話されているいくつかのURLがありますが、完全な解決策は見られません。 mspdbsrv.exeがトラブルメーカーだと誰かが言った。インクリメンタルビルドの結果をクリーンアップして実際のクリーンビルドを作成すると、うまく機能します。
http://social.msdn.Microsoft.com/Forums/en-US/vclanguage/thread/9e58b7d1-a47d-4a76-943a-4f35090616e8
MSBuildで/MP
または/MDd
を使用する場合は、/Zf
コンパイラオプションも使用してください。 ( https://docs.Microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-error-lnk1318 を参照してください)
LNK1318のその他のトラブルシューティング手順:
Debug Information Format
を/C7
またはNone
に変更します/property:_IsNativeEnvironment=true
でビルドしてみてくださいこれは、VCリンカーの技術的な制限です。コードモジュールをさらに分割してみてください。ライブラリを分割すると、リンク時間が非常に長くなります。
リリースモードで正常にビルドできるかどうかを確認します
/ clrオプションを含むファイルがあり、問題が発生したため、問題が発生しました。 CLR固有のコードを別のファイルに移動し、クリーンアップして再構築したところ、問題は解決しました。