0

I've managed to compile Swiften library for a iOS project, but now I'm having linking errors related to Boost library.

I've compiled Boost following these steps, the error I'm getting during linking is:

Undefined symbols for architecture arm64:
"vtable for boost::filesystem::detail::utf8_codecvt_facet", referenced from:
  __GLOBAL__I_a in boost(path.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

I've read some articles which suggest including some compilation params, but not sure which params or where should I put them. I've also reached this thread with no solution. Anyone else faced this issue? Anyone succeeded compiling and running Swiften for iOS? Any tip on the right direction would be much appreciated.

UPDATE 1

It seems filesystem and program_options libs share utf8_codecvt_facet object, and one was overriding the other while building boost. Finally, I managed to compile the whole Swiften library, but when I try to use it I'm getting more linking errors :( I get this error when I declare a JID object on my main class:

Undefined symbols for architecture armv7: 
"Swift::StringPrep::getPrepared(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&, 
Swift::StringPrep::Profile)", referenced from:
Swift::JID::nameprepAndSetComponents(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&, std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&) in JID.o
ssantos
  • 16,001
  • 7
  • 50
  • 70
  • Are you sure this gist script is building arm64 slices of the boost libraries? – Sam Miller Mar 05 '15 at 07:02
  • I had similar linker errors. have you added libc++.dylib to your target? If using latest boost then c++11 compiler might be required. Change build settings c++ language section accordingly. – Pradip Vaghasiya Jul 26 '15 at 06:16

0 Answers0