アプリケーションを別のバージョンの Visual Studio でビルドされた静的ライブラリにリンクしようとしています (私は VS2010 を使用しており、lib は VS2008 でビルドされています)。静的ライブラリは内部で STL を使用しており、一部の basic_string メソッドが見つからないというリンカー エラーが発生しています。
静的ライブラリがパブリック インターフェイスで STL を使用している場合、STL オブジェクトはバイナリ互換性がないため、これは不可能であることを理解しています。しかし、そうではありません。私が呼び出している lib のメソッドはどれも STL を使用しておらず、STL オブジェクトを lib に渡していません。ただし、内部的に静的ライブラリは独自の関数で STL を使用します。
ライブラリに STL コードがコンパイルされていないようで、リンカが STL を内部メソッドにリンクしようとしています。私の質問は、静的ライブラリをコンパイルしてSTLに静的にリンクし、その中にすべてのコードを含める方法はありますか?
私自身のアプリケーションでも STL を使用していることに言及する必要があります。しかし、両方のバージョンが互いに渡されない限り、両方のバージョンをコンパイルできるようです。