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特有のことなので,こちらに質問しました。
ご存知の方,教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

_Znwj は /usr/lib/libstdc++.so.3 の中にあると思いますが、どうでしょう?


そっちを先に開いておけば良いように思いますが。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q起動時DRIVER_IRQL_NOT_LESS_OREQUAL(Smb_driver_sys)

先日ウインドウズ7から10にアップデートした時から起動時ブルーバックでこのメッセージが出るようになりました
対処法がわからず困っています。メッセージをなくす方法教えてください、よろしくお願いします。

Aベストアンサー

OSは違うかもしれませんが、同様のエラーメッセージに対して先日回答しています。
かなり残念な内容ですが、ご参考になれば。
https://oshiete.goo.ne.jp/qa/9067332.html

Qプライベート・フォルダ1.0 (Private Folder 1.0)について

2006年7月5日にマイクロソフト社がフリーウェア・ソフトとして公開した「プライベート・フォルダ」について。

現在、Updateを欠かさず行っているWindowsXp上で利用しています。
今のところ特に問題もなく、正常に機能してくれています。

私と同じように、現在このソフトをご利用の方で、何かトラブルに遭遇された方がおられたら、どういう状態で発生したのか、原因が特定できていればその原因と、そうならないために考えられる予防策(あくまで使用する事を前提として、です)をお教えください。


補足
このソフトは、元々、一般家庭での使用を想定して公開された様ですが、業務に使用する場合、利用者にモラル上の問題があると、情報管理上の支障が発生する等のマイナスコメントが多く出され、公開から1週間足らずで公開停止になった、と聞いています。
任意のパスワードによってロックをかけ、パスワードを知らない他人(たとえ情報機器管理者でも)が絶対に開けられないフォルダを生成できるもので、ソフトそのものに問題はない、と聞いています。
しかし、このソフトの「おいたち」を考えると、たとえ軽いトラブルでも、フォローしてくれるところは無いだろうと思います。
そのため、欠かさずバックアップはとっています(じゃあ何のための秘密フォルダなんだ、と言われたらそれまでなんですが)。
英語版と露西亜語版しかなく、今、入手するのは非常に困難だそうです。

2006年7月5日にマイクロソフト社がフリーウェア・ソフトとして公開した「プライベート・フォルダ」について。

現在、Updateを欠かさず行っているWindowsXp上で利用しています。
今のところ特に問題もなく、正常に機能してくれています。

私と同じように、現在このソフトをご利用の方で、何かトラブルに遭遇された方がおられたら、どういう状態で発生したのか、原因が特定できていればその原因と、そうならないために考えられる予防策(あくまで使用する事を前提として、です)をお教えください。


補足...続きを読む

Aベストアンサー

トラブルと回避策・
「パスワード忘れでデータが取りだせない」→→【回避策:パスワードを忘れないようにする】



>>任意のパスワードによってロックをかけ、パスワードを知らない他人(たとえ情報機器管理者でも)が絶対に開けられないフォルダ
→うっかり「パスワードを忘れ中身が取り出せなくなった」程度なら「自己責任・わすれた本人が悪い」だけですが

>>今のところ特に問題もなく、正常に機能してくれています。
あなたのおっしゃるとおり
「ソフトそのものに欠陥があり、公開停止」に至った訳ではありませんから、既に持ってる人は問題なく使えるでしょう・・・。

【モラルのない人々によって「データ流出・交換の為の手段として悪用」の手段として好都合】←ここが問題だから、政治的圧力で公開停止になった。

「刃があるから、一揆が起こる・・・だったら、刃を廃止しましょう・・・(刀狩り令)」的発想ですよ。。

QAPACHEとTOMCAT連携が上手く行きません。(mod_jserv.so)

Redhat7.1でapache(1.3.12)とtomcat(3.2.3)の連携を行っていますが、ファイルクラッシュ?エラーメッセージが出てしまいます。
モジュールはjakartaサイトからダウンロードしてきました。
詳細は---
/etc/rc.d/init.d/httpd start
Starting httpd: [日付] [warn]Loaded DSO libexec/mod_jserv.so uses plain Apache 1.3 API,
this module might crash under EAPI!
(please recompile it with -DEAPI)
    [OK]
------
と表示されます。
”再度DEAPIと一緒にコンパイルしろ”と云う事なのでしょうが、ディレクトリ内を幾ら探してもそれらしいファイルは見つかりません。
[OK]が出ていると云う事は、上記以外は通っている事なのでしょうか?[FAILED]なら解りますが・・・。
どの様に復旧させれば良いのか、皆目見当が付きません。
ご存知の方、是非ご指導の程宜しくお願い申し上げます。
因みに、TOMCAT単体では稼動します。

Redhat7.1でapache(1.3.12)とtomcat(3.2.3)の連携を行っていますが、ファイルクラッシュ?エラーメッセージが出てしまいます。
モジュールはjakartaサイトからダウンロードしてきました。
詳細は---
/etc/rc.d/init.d/httpd start
Starting httpd: [日付] [warn]Loaded DSO libexec/mod_jserv.so uses plain Apache 1.3 API,
this module might crash under EAPI!
(please recompile it with -DEAPI)
    [OK]
------
と表示されます。
”再度DEAPIと一緒にコ...続きを読む

Aベストアンサー

いつも、お節介で、回答を書いていますが、回答したあとで、とんちんかんなアドバイスではなかった、間違ったことを言ってしまったのではいか、後悔しています。世間には、「何を言っているの?馬鹿な、いいかげんなことを言って」と、冷ややかな見方をされる方もおいでですが、困っているときはお互いさまです。

お答えする前には、少なからずそれなりの実機でのテストで、ある程度の確認をしてお答えしていますが、最近のApacheの経験がないので、アドバイスにあまり期待しないでください。
コンパイル済みのApacheが、使用しているLinuxでは、ダウンロードどした状態では使用できないようです。

エラーメッセージの内容は、DSO(Dynamic Shared Object) libexec/mod_jseerv.so(ソース・オブジェクト)が、plain(通常の)Apache1.3 APIを使用しているので、EAPI(Extended Applicaction Interface)のところで、クラシュしていることを表示しています。そのために、DEAPI-多分EPAIをDisableして、再度コンパイルすることを指示しています。多分、makeする際の、Makefileの定義のところだとは思いますが、どこかは、特定できません。
もし、場所がわかりましたら、再度、アップしましょう。

Apacheが起動したら、php言語ですね!

それでは、ご健闘を祈ります。

hogehoge ojin

いつも、お節介で、回答を書いていますが、回答したあとで、とんちんかんなアドバイスではなかった、間違ったことを言ってしまったのではいか、後悔しています。世間には、「何を言っているの?馬鹿な、いいかげんなことを言って」と、冷ややかな見方をされる方もおいでですが、困っているときはお互いさまです。

お答えする前には、少なからずそれなりの実機でのテストで、ある程度の確認をしてお答えしていますが、最近のApacheの経験がないので、アドバイスにあまり期待しないでください。
コンパイル済み...続きを読む

Qjavaws-1_2_0_01-linux-i586-i.zip

/usr/java/j2re1.4.1_01のなかに
javaws-1_2_0_01-linux-i586-i.zip
というものがありますがこれはいったいなんなのでしょうか?
ひらいてみるといろいろなファイルがみえます。
そのなかにinstall.shというものがありますがこれを
インストールするとどうなるのでしょうか?
インストールしてみようかとおもったのですが
インストールの方法がわかりません。
よろしくおねがいします。

Aベストアンサー

Java Web Startという機能です。
詳しくは下記URLを参考にしてください。

javaws-1_2_0_01-linux-i586-i.zipについて一番下に載っています
http://java.sun.com/j2se/1.4.1/ja/install-linux.html

Java Web Startについて
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jws/index.html
http://java.sun.com/products/javawebstart/ja/index_ja.html
http://www.utj.co.jp/XML/dev/java/dxjava_3.html

Qssh_known_hosts について

SSH接続において初回接続時は登録されていないホストからの接続というメッセージが表示され、そのホストの情報が、ssh_known_hostsに登録されますが、
ある資料では、v1ではそこに登録され、v2ではssh_known_hosts2に登録されると書かれており、
ある資料では、RSA鍵がssh_known_hostsに、
DSA鍵がssh_known_hosts2に格納されると書かれています。
本当のところはどちらが正しいのでしょうか?
教えてください。

Aベストアンサー

前者が正しいようです。

ただし、参考URLの15.3.4節をみてもわかるように、最新のOpenSSHでは*2というファイルを使わなくなりました。

http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/s1-openssh-client-config.html

参考URL:http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/s1-openssh-client-config.html


人気Q&Aランキング

おすすめ情報