C コンパイラに渡された間違った定義でコンパイルされたサードパーティの静的ライブラリに実行可能ファイルをリンクしています。同じライブラリは DLL としても利用でき、静的バージョンはすべてのシンボルがエクスポートされるようにコンパイルされています。もちろん、これは静的ライブラリには意味がありません。エクスポートは、そのようなライブラリが統合される実行可能ファイル (または DLL) に伝播するためです。
実行可能ファイルをこのライブラリにリンクすると、ライブラリのシンボルが実行可能ファイルからエクスポートされます。生成された .lib および .exp ファイルについては気にしません。実行可能ファイル自体でエクスポートされたシンボルを削除する必要があります。
私が必要としているのは、次のいずれかの方法です。
リンカーのエクスポートされたシンボルのリストを強制的にクリアするか、または
ライブラリから抽出されたオブジェクト ファイルを編集して、シンボルを「アンエクスポート」します。
プロジェクトのビルドには Visual Studio 2012 を使用しています。ライブラリは .LIB ファイルとして提供されており、ライブラリアンを使用してオブジェクト ファイルを抽出し、ダンプビンを使用して、エクスポートされたシンボルの存在を確認できます。
現時点では、ベンダーに修理を依頼したくありません。というか、私が年を取る前にベンダーが回答してくれるとは思っていません。