0

gcc を使用して AIX 上に構築されたサード パーティの静的ライブラリがあります。xlC AIX コンパイラを使用してそのライブラリにリンクしようとすると、あらゆる種類の未解決のシンボルが表示されます。名前マングリングの違いによるものだと思います。nmコマンドを使用してライブラリから管理された名前を取得した場合、探しているシンボルを見つけることができれば、xlCコンパイラでバイナリを構築することに根本的な問題がありますか? 私はどんなトラブルを求めていますか?

4

1 に答える 1

3

これはうまくいかない可能性が非常に高いです。これについてはC++ Faq Liteの質問を参照してください。

C++ は C よりもはるかに複雑であり、互換性がない可能性がある追加要素が多数あります。

いくつかの例について、例外処理は互換性がありますか? データ オブジェクトは同じようにレイアウトされていますか (C では順序はリストのとおりですが、C++ ではアクセス指定子によって異なる場合があります)? vtables は同じように機能しますか? どのようにdynamic_cast扱われますか?

名前マングリングの違いがリンクを妨げていますが、他にも多くの違いがあります。

おそらく、彼らが使用したバージョンの gcc を使用したほうがよいでしょう。それは、私がかつて同様のプロジェクトでやらなければならなかったことです。

于 2010-11-10T20:37:35.563 に答える