Archived Forum Post

Index of archived forum posts

Question:

iOS Link error : vtable for __cxxabiv1

Nov 04 '13 at 10:07

i have some error how to solve that

---------------- error ----------------

capture image

Undefined symbols for architecture armv7:

"vtable for cxxabiv1::vmi_class_type_info", referenced from:

  typeinfo for ClsAtom in libSKClient.a(ClsAtom.o)
  typeinfo for ClsBase in libSKClient.a(ClsBase.o)
  typeinfo for ClsCache in libSKClient.a(ClsCache.o)
  typeinfo for ClsCert in libSKClient.a(ClsCert.o)
  typeinfo for ClsCertStore in libSKClient.a(ClsCertStore.o)
  typeinfo for ClsCgi in libSKClient.a(ClsCgi.o)
  typeinfo for ClsCharset in libSKClient.a(ClsCharset.o)
  …

NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.

"___cxa_begin_catch", referenced from: ChilkatBzip2::BZ2_decompress(DState) in libSKClient.a(BzApi.o) ChilkatCompress::CompressFile(XString&, XString&, LogBase&, ProgressMonitor) in libSKClient.a(ChilkatCompress.o) ChilkatDeflate::BeginDecompress(bool, DataBuffer&, DataBuffer&, LogBase&, ProgressMonitor) in libSKClient.a(ChilkatDeflate.o) ChilkatLzw::decompressLzwSource(DataSource&, Output&, bool, LogBase&, ProgressMonitor) in libSKClient.a(ChilkatLzw.o) ChilkatLzw::compressLzwSource(DataSource&, Output&, bool, LogBase&, ProgressMonitor*) in libSKClient.a(ChilkatLzw.o) CkAtom::createNew() in libSKClient.a(CkAtom.o) CkCert::createNew() in libSKClient.a(CkCert.o) …

"operator new", referenced from:

  ChilkatBzip2::BZ2_bzCompressInit(bz_stream*, int, int, int) in libSKClient.a(BzApi.o)
  ChilkatBzip2::BZ2_decompress(DState*) in libSKClient.a(BzApi.o)
  ChilkatLzw::decompressLzwSource(DataSource&, Output&, bool, LogBase&, ProgressMonitor*) in libSKClient.a(ChilkatLzw.o)
  ChilkatLzw::compressLzwSource(DataSource&, Output&, bool, LogBase&, ProgressMonitor*) in libSKClient.a(ChilkatLzw.o)
  CkObject::objcUtf8(char const*) in libSKClient.a(CkObject.o)
  ClsCgi::readUntilBoundary(unsigned int&, unsigned int&, StringBuffer&, Output&, bool, bool&) in libSKClient.a(ClsCgi.o)
  ClsCgi::doConsumeUpload() in libSKClient.a(ClsCgi.o)
  …

"operator new(unsigned long)", referenced from:

  -[CkoAtom init] in libSKClient.a(CkoAtom.o)
  -[CkoBounce init] in libSKClient.a(CkoBounce.o)
  -[CkoBz2 init] in libSKClient.a(CkoBz2.o)
  -[CkoCache init] in libSKClient.a(CkoCache.o)
  -[CkoCert init] in libSKClient.a(CkoCert.o)
  -[CkoCertStore init] in libSKClient.a(CkoCertStore.o)
  -[CkoCgi init] in libSKClient.a(CkoCgi.o)
  …

"vtable for cxxabiv1::si_class_type_info", referenced from:

  typeinfo for CkFtpProgress in libSKClient.a(MmFtp2Progress.o)
  typeinfo for MmFtp2Progress in libSKClient.a(MmFtp2Progress.o)
  typeinfo for CkHttpProgress in libSKClient.a(MmHttpProgress.o)
  typeinfo for MmHttpProgress in libSKClient.a(MmHttpProgress.o)
  typeinfo for CkImapProgress in libSKClient.a(MmImapProgress.o)
  typeinfo for MmImapProgress in libSKClient.a(MmImapProgress.o)
  typeinfo for MmMailManProgress in libSKClient.a(MmMailManProgress.o)
  ...

NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "vtable for cxxabiv1::class_type_info", referenced from: typeinfo for ChilkatBzip2 in libSKClient.a(ChilkatBzip2.o) typeinfo for ChilkatCompress in libSKClient.a(ChilkatCompress.o) typeinfo for ChilkatDeflate in libSKClient.a(ChilkatDeflate.o) typeinfo for ChilkatLzw in libSKClient.a(ChilkatLzw.o) typeinfo for CkObject in libSKClient.a(CkObject.o) typeinfo for AesCrypt in libSKClient.a(ClsAesInterop.o) typeinfo for ClsBaseI in libSKClient.a(ClsBase.o) …

NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "___cxa_end_catch", referenced from:

  ChilkatBzip2::BZ2_decompress(DState*) in libSKClient.a(BzApi.o)
  ChilkatCompress::CompressFile(XString&, XString&, LogBase&, ProgressMonitor*) in libSKClient.a(ChilkatCompress.o)
  ChilkatDeflate::BeginDecompress(bool, DataBuffer&, DataBuffer&, LogBase&, ProgressMonitor*) in libSKClient.a(ChilkatDeflate.o)
  ChilkatLzw::decompressLzwSource(DataSource&, Output&, bool, LogBase&, ProgressMonitor*) in libSKClient.a(ChilkatLzw.o)
  ChilkatLzw::compressLzwSource(DataSource&, Output&, bool, LogBase&, ProgressMonitor*) in libSKClient.a(ChilkatLzw.o)
  CkAtom::createNew() in libSKClient.a(CkAtom.o)
  CkCert::createNew() in libSKClient.a(CkCert.o)
  …

"___gxx_personality_sj0", referenced from:

  -[CkoAtom UpdateElementDate:index:dateTime:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom ToXmlString] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetTopAttr:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetPersonInfo:index:tag2:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetLinkHref:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetElementDateStr:index:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetElementDate:index:] in libSKClient.a(CkoAtom.o)
  …

"operator delete", referenced from:

  ChilkatBzip2::BZ2_bzCompressInit(bz_stream*, int, int, int) in libSKClient.a(BzApi.o)
  ChilkatBzip2::BZ2_bzDecompressEnd(bz_stream*) in libSKClient.a(BzApi.o)
  ChilkatBzip2::DecompressStream(DataSource&, Output&, LogBase&, ProgressMonitor*) in libSKClient.a(BzApi.o)
  ChilkatBzip2::BZ2_bzCompressEnd(bz_stream*) in libSKClient.a(BzApi.o)
  ChilkatBzip2::CompressStream(DataSource&, Output&, LogBase&, ProgressMonitor*) in libSKClient.a(BzApi.o)
  ChilkatBzip2::~ChilkatBzip2() in libSKClient.a(ChilkatBzip2.o)
  ChilkatBzip2::~ChilkatBzip2() in libSKClient.a(ChilkatBzip2.o)
  …

"operator delete(void*)", referenced from:

  -[CkoAtom init] in libSKClient.a(CkoAtom.o)
  -[CkoBounce init] in libSKClient.a(CkoBounce.o)
  -[CkoBz2 init] in libSKClient.a(CkoBz2.o)
  -[CkoCache init] in libSKClient.a(CkoCache.o)
  -[CkoCert init] in libSKClient.a(CkoCert.o)
  -[CkoCertStore init] in libSKClient.a(CkoCertStore.o)
  -[CkoCgi init] in libSKClient.a(CkoCgi.o)
  …

"std::terminate()", referenced from:

  -[CkoAtom UpdateElementDate:index:dateTime:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom ToXmlString] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetTopAttr:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetPersonInfo:index:tag2:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetLinkHref:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetElementDateStr:index:] in libSKClient.a(CkoAtom.o)
  -[CkoAtom GetElementDate:index:] in libSKClient.a(CkoAtom.o)
  …

ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)


Answer

See the very first item on this web page: http://www.chilkatsoft.com/chilkatIos.asp

Must Link w/ C++ Runtime Libs

The Chilkat internals are written in C++. Therefore, your Objective-C application will need to link against the C++ runtime libraries. The easiest way to do it is to include an empty source file with the file extension "cpp" in your app target.