- 締切済み
共有ライブラリロードエラー(_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特有のことなので,こちらに質問しました。 ご存知の方,教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- inetd
- ベストアンサー率23% (43/184)
回答No.1
_Znwj は /usr/lib/libstdc++.so.3 の中にあると思いますが、どうでしょう? そっちを先に開いておけば良いように思いますが。