OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

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

  • すぐに回答を!
  • 質問No.212712
  • 閲覧数992
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 71% (56/78)

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
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル10

ベストアンサー率 23% (43/184)

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


このQ&Aのテーマ
このQ&Aで解決しましたか?
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ