Вот моя ошибка.
dyld: Symbol not found: __ZTIN8eqOsirix3ROIE
Referenced from: /Users/slate/Documents/osirixplugins/CoreDataTrial_EQOsirix/build/Development/rcOsirix.app/Contents/MacOS/rcOsirix
Expected in: flat namespace
in /Users/slate/Documents/osirixplugins/CoreDataTrial_EQOsirix/build/Development/rcOsirix.app/Contents/MacOS/rcOsirix
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Not safe to call dlopen at this time.)
(gdb) bt
#0 0x8fe01065 in __dyld_dyld_fatal_error ()
#1 0x8fe04fa5 in __dyld__ZN4dyld4haltEPKc ()
#2 0x8fe0796b in __dyld__ZN4dyld5_mainEPK12macho_headermiPPKcS5_S5_ ()
#3 0x8fe018b1 in __dyld__ZN13dyldbootstrap5startEPK12macho_headeriPPKcl ()
#4 0x8fe01057 in __dyld__dyld_start ()
(gdb) continue
Program received signal: “EXC_BAD_ACCESS”.
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Not safe to call dlopen at this time.)
(gdb) bt
#0 0x8fe010e3 in __dyld__ZN13dyldbootstrapL30randomizeExecutableLoadAddressEPK12macho_headerPPKcPm ()
#1 0x8fe04fa5 in __dyld__ZN4dyld4haltEPKc ()
#2 0x8fe0796b in __dyld__ZN4dyld5_mainEPK12macho_headermiPPKcS5_S5_ ()
#3 0x8fe018b1 in __dyld__ZN13dyldbootstrap5startEPK12macho_headeriPPKcl ()
#4 0x8fe01057 in __dyld__dyld_start ()
(gdb)
где eqOsirix
— мое основное пространство имен. Недавно у меня были две похожие проблемы (one и два), но ни одно из решений мне сейчас не помогает.
Я заметил проблему после того, как обновил свой Mac, но я думаю, что это не связано.
Ошибки компиляции (или предупреждения) не генерируются.
Что может быть причиной этого? Почему компилятор ничего не ловит во время линковки? Я сделал чистую сборку, сбросил и XCode, и Mac.... Я просто не в себе, и Google просто дает мне материал для сторонних фреймворков, которые не включены, но это мой главный namespace
!! Ау!
[EDIT] Поскольку @Troubador указал, что ROI
не был частью схватки, я включаю ROI ниже:
#ifndef EQOSIRIX_ROI_H
#define EQOSIRIX_ROI_H
namespace eqOsirix{
class ROI : public eq::Object
{
public:
ROI() {};
virtual ~ROI() {};
virtual uint32_t getType() {return NONE;};
virtual void draw() {};
protected:
enum ROIType {
NONE = 0,
LINE,
POLY,
AREA,
VOLUME
};
private:
};
}
#endif//EQOSIRIX_ROI_H
не так много, чтобы напортачить, и я думаю, что все виртуальные машины определены нормально для C++ (в отличие от Java или ObjC) ???
eqOsirix::ROI
... не вижу ничего плохого? - person Stephen Furlani   schedule 16.09.2010ROI
выглядит нормально. Проблема может быть с базойeq::Object
. (Кстати, у вас есть много избыточных точек с запятой в определенииROI
. Они вам не нужны после закрывающей скобки определения функции.) - person Troubadour   schedule 16.09.2010= 0;
и забыл их вынуть. - person Stephen Furlani   schedule 16.09.2010ROI
теперь находится в заголовке дляROILine
подкласса. - person Stephen Furlani   schedule 16.09.2010