GCCによって構築された静的C ++ライブラリをXLCによってコンパイルしたプログラムをリンクしますか?
-
30-09-2019 - |
質問
GCCを使用してAIX上に構築されたサードパーティの静的ライブラリがあります。 XLC AIXコンパイラを使用してそのライブラリにリンクしようとすると、あらゆる種類の未解決のシンボルを取得します。名前のマングリングの違いによるものだと思います。 NMコマンドを使用してライブラリからマインド名を取得した場合、探しているシンボルを見つけることができれば、XLCコンパイラでバイナリを構築することに根本的に間違っていることはありますか?私はどんな問題を求めていますか?
解決
これはおそらく機能しないでしょう。を参照してください C ++ FAQ Lite これについての質問。
C ++はCよりもはるかに複雑であり、互換性がない可能性のある追加のものがたくさんあります。
いくつかの例として、例外は互換性がありますか?データオブジェクトは同じようにレイアウトされていますか(Cでは、順序はリスト通りですが、C ++ではアクセス仕様によって異なる場合があります)? vtablesは同じ動作しますか?どうですか dynamic_cast
処理されましたか?
名前のマングリングの違いは、あなたがリンクするのを止めることですが、あなたを噛むことができる他の多くの違いがあります。
おそらく、GCCのバージョンを使用したほうがよいでしょう。それが私が同様のプロジェクトで一度やらなければならなかったことです。
所属していません StackOverflow