Моя проблема заключается в следующем:
Существует общая библиотека Interface.so, основанная на ICE (Internet Communication Engine) и нечто вроде оболочки для часто повторяющихся задач. Одна из этих задач - зарегистрироваться в теме (аналогично идентификатору). В случае, если эта тема еще не существует, ICE выдает исключение с именем NoSuchTopic.
Если я использую Interface.so с автономным приложением Qt, я могу перехватить исключение NoSuchTopic и создать тему в блоке catch (блок catch находится в Interface.so).
Но я хочу сделать то же самое в плагине для симулятора полета, который сам по себе является общим объектом - и здесь исключение не перехватывается предыдущим упомянутым блоком перехвата в Interface.so.
Вместо этого вылетает симулятор полета с указанием
terminate called after throwing an instance of 'IceStorm::NoSuchTopic'
nm -C -D говорит, что «IceStorm :: NoSuchTopic» не определен в Interface.so. Это нормально? Или должна быть ссылка, где найти определение? Я уже добавил запись для libIceStorm.so (libs + = -lIceStorm), где определяется IceStorm :: NoSuchTopic (в соответствии с nm), но это ничего не меняет!
Я также пробовал '-Wl, -E', но не знаю, правильно ли я установил эту опцию в Qt Creator. Поможет ли это вообще?
Буду благодарен за каждый намек.