2012-03-30 4 views
0

私たちは、静的にリンクされたC++ライブラリを含む多くのコンパイル済みのC++ツールを持っています。私たちはいくつかのライブラリを拡張しましたが、もちろんそれを再コンパイルしました - >新しいDLLは古いC++ツールと互換性がありません!既存のlibsでの名前のマングル - 競合

エラー:

[email protected]@[email protected]@[email protected] could not be located in the dynamic link library IFX_CC_RegTestBase.dll

当社のツールを再コンパイルせずマングリングこの名前を無視する方法は(それらの何百もある)はありますか?

答えて

0

おそらくそうではありません。異なるC++コンパイラ(および同じコンパイラの異なるバージョン)は、異なる名前のマングリングスキームを使用し、これは安全メカニズムです。名前のマングリングシステムに加えて、特定のコンパイラに固有の実行時メカニズムがあり、これらは互換性もありません。たとえば、仮想メソッドディスパッチです。これらがリンクしないという事実は、たぶんクラッシュして燃える実行可能ファイルをビルドすることからあなたを救うでしょう。

関連する問題