サードパーティから、solaris ステーションでリンクするための静的ライブラリ (.a) が提供されました。sunpro でコンパイルしようとしましたが、リンク段階で失敗しました。
この問題は、私が使用しているコンパイラ (代わりに gcc?) または単にそのバージョン (コンパイラによって提供される std lib がライブラリ AFAIK によって期待されるバージョンから変更される可能性があるため、リンクステップでエラーが発生する可能性があるため) から発生していると思います)。
このライブラリを生成するためにどのコンパイラが使用されたかを知るにはどうすればよいですか? それを行うツールはありますか?sunpro/gcc などのオプションはありますか?
ヒントとして:オブジェクト ファイルを生成するときに、コンパイラがさまざまなマングリング規則を使用することを少し前に読みました (本当ですか?)。それでも、「nm --demangle」コマンド ラインでは、この静的ライブラリのデバッグ シンボルからすべての関数名が出力されます。それはどのように機能しますか?私の仮定が正しければ、nmには静的ライブラリで使用されている規則を解決する方法がありますね。それとも、nm は GNU binutils の一部であるため、lib が GNU gcc によって生成されたことを単に意味しているのでしょうか?
ワークステーションの近くにいないため、リンカーからエラー出力をコピーして貼り付けることはできません (現時点ではありませんが、さらに編集してコピーすることはできます)。