私の問題は、以下の通りである。キャッチされないC++例外(Qtのプロジェクト)
ICE(インターネット通信エンジン)と頻繁に定期的なタスクのためのラッパーのようなものに基づいていますInterface.soと呼ばれる共有ライブラリがあります。これらのタスクの1つは、トピックに登録することです(idに似ています)。このトピックが既に存在しない場合、ICEはNoSuchTopicという例外をスローします。
スタンドアロンのQtアプリケーションでInterface.soを使用すると、NoSuchTopic例外をキャッチしてキャッチブロック(キャッチブロックがInterface.soにある)にトピックを作成することができます。 しかし、私は共有オブジェクト自体であるフライトシミュレータ用のプラグインで同じことをやってみたい - と、ここで例外がInterface.soで以前に述べたcatchブロックでキャッチされていません。 は代わりに、フライトシミュレータは
terminate called after throwing an instance of 'IceStorm::NoSuchTopic'
nmの-C -Dは、 'アイス・ストーム:: NoSuchTopicは' Interface.soに定義されていないと述べている旨クラッシュします。これでいい?あるいは定義を見つけるための参照があるべきか? IceStorm :: NoSuchTopicが定義されている(nmによる)libIceStorm.so(libs + = -lIceStorm)のエントリを既に追加しましたが、それでも何も変わりません!
私も「-Wl、-E」を試してみましたが、私はQtのCreatorで正しくこのオプションを設定した場合、私は知りません。これはまったく役に立ちますか?
私はすべてのヒントのために感謝されます。通常、利用可能ではない情報を入力することになっている前に、私はこの問題を持っていた
あなたの答えをありがとう。残念ながら私はここに投稿する前にすべての提案を試みました(私の "-Wl、-E"はリンクされた答えから来た)。しかし、ついに私の同僚は問題を解決しました。どうやら、UbuntuリポジトリのICEに使われているGCCのバージョンはUbuntu 11.10のデフォルトのGCCと違うので、問題はICEをソースから再コンパイルすることで解決しました... – Markus