異なるバージョンの Visual Studio で作成された C++ ライブラリは互いに互換性がありますか? 質問する

異なるバージョンの Visual Studio で作成された C++ ライブラリは互いに互換性がありますか? 質問する

Visual Studio 2005 を使用してオープンソースの C++ ライブラリを作成しています。ソース コードとともにビルド済みのライブラリを提供したいと考えています。VS2005 でビルドされたこれらのライブラリは、Visual Studio の新しいバージョン (特に VS Express Edition 2008) でも動作しますか? それとも、VS バージョンごとに個別のライブラリを提供する必要がありますか?

ベストアンサー1

通常はそうではありません。VS ツールで構築されたライブラリは、C および C++ 標準ライブラリ関数を提供する「Microsoft C ランタイム」(MSVCRT の後にバージョン番号が続く) にリンクされており、このランタイムの 2 つの異なるバージョンを必要とするプログラムを実行しようとすると、エラーが発生します。

さらに、異なるコンパイラ バージョンでは異なるコンパイル済みコードが生成され、ごくわずかな場合を除いて、あるコンパイラ バージョンのコードは他のバージョンと互換性がないことがよくあります (同じコードが生成された場合、異なるバージョンを持つ意味はありません :))

おすすめ記事