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.