• 締切済み

共有ライブラリロードエラー(_Znwj)

LINUXのGCCで,共有ライブラリを作成しようとしています。 ライブラリとして提供する関数の中で,エリアを new しているものがあるのですが,こうして作成したライブラリ(mytest.so.1.0)をアプリケーションから dlopen() で開こうとすると,  Error of dlopen() : ./mytest.so.1.0: undefined symbol: _Znwj となってしまいます。 この _Znwj というのがよくわからないのですが,nmコマンドでmytest.so.1.0 の情報を表示してみると,     :  00001e18 A _DYNAMIC  00001dcc A _GLOBAL_OFFSET_TABLE_   U _Znwj  00001dc0 ? __CTOR_END__  00001dbc ? __CTOR_LIST__     : となっており,確かに“未定義”として _Znwj というのが表示されます。 共有ライブラリの中で new を使用する場合は,なにか注意点などあるのでしょうか。 たとえば,コンパイルオプションでなにかを指定するとか・・ C/C++系の質問コーナーに発言するほうが良いのかもしれませんが,LINUX特有のことなので,こちらに質問しました。 ご存知の方,教えてください。

みんなの回答

  • inetd
  • ベストアンサー率23% (43/184)
回答No.1

_Znwj は /usr/lib/libstdc++.so.3 の中にあると思いますが、どうでしょう? そっちを先に開いておけば良いように思いますが。

関連するQ&A