Hello,

I've been pulling my hair out trying to link against the arm64 version of 
crypto++ in iOS.

I get roughly 14 errors of the following kind:

Undefined symbols for architecture arm64:
  "std::__1::__vector_base_common<true>::__throw_length_error() const", 
referenced from:
      std::__1::enable_if<__is_forward_iterator<CryptoPP::Integer*>::value, 
void>::type std::__1::vector<CryptoPP::Integer, 
std::__1::allocator<CryptoPP::Integer> 
>::assign<CryptoPP::Integer*>(CryptoPP::Integer*, CryptoPP::Integer*) in 
libcryptopp.a(dll.o)
      std::__1::vector<CryptoPP::Integer, 
std::__1::allocator<CryptoPP::Integer> >::allocate(unsigned long) in 
libcryptopp.a(dll.o)
      void std::__1::vector<CryptoPP::BaseAndExponent<CryptoPP::Integer, 
CryptoPP::Integer>, 
std::__1::allocator<CryptoPP::BaseAndExponent<CryptoPP::Integer, 
CryptoPP::Integer> > 
>::__push_back_slow_path<CryptoPP::BaseAndExponent<CryptoPP::Integer, 
CryptoPP::Integer> const>(CryptoPP::BaseAndExponent<CryptoPP::Integer, 
CryptoPP::Integer> const&) in libcryptopp.a(dll.o)
      void std::__1::vector<CryptoPP::Integer, 
std::__1::allocator<CryptoPP::Integer> 
>::__push_back_slow_path<CryptoPP::Integer const>(CryptoPP::Integer const&) 
in libcryptopp.a(dll.o)
      std::__1::vector<CryptoPP::Integer, 
std::__1::allocator<CryptoPP::Integer> >::__append(unsigned long) in 
libcryptopp.a(dll.o)
      std::__1::vector<CryptoPP::Integer, 
std::__1::allocator<CryptoPP::Integer> >::__append(unsigned long, 
CryptoPP::Integer const&) in libcryptopp.a(dll.o)
      void std::__1::vector<CryptoPP::WindowSlider, 
std::__1::allocator<CryptoPP::WindowSlider> 
>::__push_back_slow_path<CryptoPP::WindowSlider 
const>(CryptoPP::WindowSlider const&) in libcryptopp.a(dll.o)

Now, the armv7 one seems fine, and it seems to be able to find the arm64 
CryptoPP functions. However, it seems like the problem is with the c++ 
stdlib?

However, I first tried the libcryptopp.a that came pre-compiled for iOS 
that has support for armv7, armv6, armv7s and arm64, and it gave this error.

I tried compiling the libraries myself again, making sure it has 
-stdlib=libstdc++ for both. Still gave this error :(

There are a bunch of other undefined symbol errors, like missing reference 
to basic_string<char> ... :: push_back and the like.

There's also a missing reference to 
CryptoPP::RandomPool::GenerateIntoBufferedTransformation(CryptoPP::BufferedTransformation&
 
std::string const& unsigned long long)" referenced from vtable for 
CryptoPP::AutoSeededRandomPool (seems to be instantiated from one of my 
files).

What am I doing wrong? I've tried everything and can't seem to get it 
working :(

Cheers

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to