Hi
I am new to Crypto++ 
I was trying to build Crypto++ for *android *using documentation here: 
https://github.com/noloader/cryptopp-android

Note: Build succeeded for *arm64-v8a* and linker fails for *armeabi-v7a*
I am not able to resolve following linker errors:


ld: error: undefined symbol: CryptoPP::CPU_ProbeARMv7()
>>> referenced by cpu.cpp:1014 (./../cryptopp\cpu.cpp:1014)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeNEON()
>>> referenced by cpu.cpp:1015 (./../cryptopp\cpu.cpp:1015)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeCRC32()
>>> referenced by cpu.cpp:1016 (./../cryptopp\cpu.cpp:1016)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbePMULL()
>>> referenced by cpu.cpp:1017 (./../cryptopp\cpu.cpp:1017)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeAES()
>>> referenced by cpu.cpp:1018 (./../cryptopp\cpu.cpp:1018)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeSHA1()
>>> referenced by cpu.cpp:1019 (./../cryptopp\cpu.cpp:1019)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeSHA256()
>>> referenced by cpu.cpp:1020 (./../cryptopp\cpu.cpp:1020)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::ARIA_UncheckedSetKey_Schedule_NEON(unsigned char*, unsigned int*, 
unsigned int)
>>> referenced by aria.cpp:182 (./../cryptopp\aria.cpp:182)
>>>               aria.o:(CryptoPP::ARIA::Base::UncheckedSetKey(unsigned 
char const*, unsigned int, CryptoPP::NameValuePairs const&)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::ARIA_ProcessAndXorBlock_NEON(unsigned char const*, unsigned 
char*, unsigned char const*, unsigned int*)
>>> referenced by aria.cpp:293 (./../cryptopp\aria.cpp:293)
>>>               aria.o:(CryptoPP::ARIA::Base::ProcessAndXorBlock(unsigned 
char const*, unsigned char const*, unsigned char*) const) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::BLAKE2_Compress32_NEON(unsigned char 
const*, CryptoPP::BLAKE2s_State&)
>>> referenced by blake2.cpp:686 (./../cryptopp\blake2.cpp:686)
>>>               blake2.o:(CryptoPP::BLAKE2s::Compress(unsigned char 
const*)) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::BLAKE2_Compress64_NEON(unsigned char 
const*, CryptoPP::BLAKE2b_State&)
>>> referenced by blake2.cpp:709 (./../cryptopp\blake2.cpp:709)
>>>               blake2.o:(CryptoPP::BLAKE2b::Compress(unsigned char 
const*)) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::ChaCha_OperateKeystream_NEON(unsigned int const*, unsigned char 
const*, unsigned char*, unsigned int)
>>> referenced by chacha.cpp:142 (./../cryptopp\chacha.cpp:142)
>>>               chacha.o:((anonymous 
namespace)::ChaCha_OperateKeystream(CryptoPP::KeystreamOperation, unsigned 
int*, unsigned int&, unsigned int&, unsigned int, unsigned char*, unsigned 
char const*, unsigned int)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::GCM_Xor16_NEON(unsigned char*, 
unsigned char const*, unsigned char const*)
>>> referenced by gcm.cpp:214 (./../cryptopp\gcm.cpp:214)
>>>               gcm.o:(CryptoPP::GCM_Base::SetKeyWithoutResync(unsigned 
char const*, unsigned int, CryptoPP::NameValuePairs const&)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a
>>> referenced by gcm.cpp:276 (./../cryptopp\gcm.cpp:276)
>>>               gcm.o:(CryptoPP::GCM_Base::SetKeyWithoutResync(unsigned 
char const*, unsigned int, CryptoPP::NameValuePairs const&)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a
>>> referenced by gcm.cpp:277 (./../cryptopp\gcm.cpp:277)
>>>               gcm.o:(CryptoPP::GCM_Base::SetKeyWithoutResync(unsigned 
char const*, unsigned int, CryptoPP::NameValuePairs const&)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::LEA_Enc_AdvancedProcessBlocks_NEON(unsigned int const*, unsigned 
int, unsigned char const*, unsigned char const*, unsigned char*, unsigned 
int, unsigned int)
>>> referenced by lea.cpp:875 (./../cryptopp\lea.cpp:875)
>>>               lea.o:(CryptoPP::LEA::Enc::AdvancedProcessBlocks(unsigned 
char const*, unsigned char const*, unsigned char*, unsigned int, unsigned 
int) const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::LEA_Dec_AdvancedProcessBlocks_NEON(unsigned int const*, unsigned 
int, unsigned char const*, unsigned char const*, unsigned char*, unsigned 
int, unsigned int)
>>> referenced by lea.cpp:892 (./../cryptopp\lea.cpp:892)
>>>               lea.o:(CryptoPP::LEA::Dec::AdvancedProcessBlocks(unsigned 
char const*, unsigned char const*, unsigned char*, unsigned int, unsigned 
int) const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::SIMON128_Enc_AdvancedProcessBlocks_NEON(unsigned long long 
const*, unsigned int, unsigned char const*, unsigned char const*, unsigned 
char*, unsigned int, unsigned int)
>>> referenced by simon.cpp:472 (./../cryptopp\simon.cpp:472)
>>>              
 simon.o:(CryptoPP::SIMON128::Enc::AdvancedProcessBlocks(unsigned char 
const*, unsigned char const*, unsigned char*, unsigned int, unsigned int) 
const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::SIMON128_Dec_AdvancedProcessBlocks_NEON(unsigned long long 
const*, unsigned int, unsigned char const*, unsigned char const*, unsigned 
char*, unsigned int, unsigned int)
>>> referenced by simon.cpp:493 (./../cryptopp\simon.cpp:493)
>>>              
 simon.o:(CryptoPP::SIMON128::Dec::AdvancedProcessBlocks(unsigned char 
const*, unsigned char const*, unsigned char*, unsigned int, unsigned int) 
const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::SPECK128_Enc_AdvancedProcessBlocks_NEON(unsigned long long 
const*, unsigned int, unsigned char const*, unsigned char const*, unsigned 
char*, unsigned int, unsigned int)
>>> referenced by speck.cpp:454 (./../cryptopp\speck.cpp:454)
>>>              
 speck.o:(CryptoPP::SPECK128::Enc::AdvancedProcessBlocks(unsigned char 
const*, unsigned char const*, unsigned char*, unsigned int, unsigned int) 
const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::SPECK128_Dec_AdvancedProcessBlocks_NEON(unsigned long long 
const*, unsigned int, unsigned char const*, unsigned char const*, unsigned 
char*, unsigned int, unsigned int)
>>> referenced by speck.cpp:475 (./../cryptopp\speck.cpp:475)
>>>              
 speck.o:(CryptoPP::SPECK128::Dec::AdvancedProcessBlocks(unsigned char 
const*, unsigned char const*, unsigned char*, unsigned int, unsigned int) 
const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a
clang++: error: linker command failed with exit code 1 (use -v to see 
invocation)
make: *** 
[C:/Users/XXXXXX/AppData/Local/Android/Sdk/ndk/22.0.6917172/build//../build/core/build-binary.mk:741:
 
obj/local/armeabi-v7a/cryptest.exe] Error 1

Any hint, suggestions please?

Regards
Ninad D

-- 
You received this message because you are subscribed to "Crypto++ Users". More 
information about Crypto++ and this group is available at 
http://www.cryptopp.com and 
http://groups.google.com/forum/#!forum/cryptopp-users.
--- 
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 cryptopp-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/cryptopp-users/d1e90e3f-abae-4c1b-a91a-78df3b70d817n%40googlegroups.com.

Reply via email to