1

私の .exe プロジェクトは、外部の静的ライブラリ A.lib と B.lib に依存しています。

問題: ライブラリ B も内部的にライブラリ A を使用し、そのシンボルをエクスポートします。しかし、使用されている A のバージョンは A.lib とは異なり、私のアプリと互換性がありません。

アプリケーションを A.lib と B.lib の両方にリンクすると、B.lib に含まれる A シンボルが A.lib の適切なシンボルを隠します。リンクは成功しますが、アプリが正しく動作しません。

B.lib のすべての使用を別の静的ライブラリ C.lib に分解しても効果はありません。C.lib は依然として B.lib からすべてのシンボルをエクスポートします。

これは、次の回避策なしで解決できますか?

  • 動的リンク。

  • 私のバージョンの A.lib で B を再構築します。(B のソースにアクセスできます。)

    これにより、B で未知の副作用が発生する可能性があります。

(私の具体的なケースでは、A.lib はFreetypeで、B.lib はSFMLですが、問題は普遍的です。)

4

0 に答える 0