<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
under the directory ndn-cxx, after ./waf, getting this error:<br>
<br>
<br>
[119/123] Linking build/libndn-cxx.a<br>
[120/123] Linking build/bin/ndncatchunks3<br>
[121/123] Linking build/bin/ndnsec<br>
[122/123] Linking build/bin/ndnputchunks3<br>
[123/123] Linking build/bin/tlvdump<br>
Undefined symbols for architecture x86_64:<br>
"vtable for CryptoPP::SHA256", referenced from:<br>
ndn::SecTpmFile::Impl::transformName(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 libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
CryptoPP::DL_SignerImpl<CryptoPP::DL_SignatureSchemeOptions<CryptoPP::DL_SS<CryptoPP::DL_Keys_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_Algorithm_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_SignatureMessageEncodingMethod_DSA, CryptoPP::SHA256,
int>, CryptoPP::DL_Keys_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_Algorithm_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_SignatureMessageEncodingMethod_DSA,
CryptoPP::SHA256>
>::NewSignatureAccumulator(CryptoPP::RandomNumberGenerator&)
const in libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
CryptoPP::ClonableImpl<CryptoPP::SHA256,
CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone()
const in libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
CryptoPP::TF_ObjectImplBase<CryptoPP::TF_SignerBase,
CryptoPP::TF_SignatureSchemeOptions<CryptoPP::TF_SS<CryptoPP::PKCS1v15,
CryptoPP::SHA256, CryptoPP::RSA, int>, CryptoPP::RSA,
CryptoPP::PKCS1v15_SignatureMessageEncodingMethod,
CryptoPP::SHA256>,
CryptoPP::InvertibleRSAFunction>::NewSignatureAccumulator(CryptoPP::RandomNumberGenerator&)
const in libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
ndn::ndn_digestSha256(unsigned char const*, unsigned long,
unsigned char*) in libndn-cxx.a(crypto.cpp.2.o)<br>
ndn::crypto::sha256(unsigned char const*, unsigned long) in
libndn-cxx.a(crypto.cpp.2.o)<br>
CryptoPP::ClonableImpl<CryptoPP::SHA256,
CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone()
const in libndn-cxx.a(crypto.cpp.2.o)<br>
...<br>
NOTE: a missing vtable usually means the first non-inline virtual
member function has no definition.<br>
ld: symbol(s) not found for architecture x86_64<br>
clang: error: linker command failed with exit code 1 (use -v to see
invocation)<br>
<br>
Undefined symbols for architecture x86_64:<br>
"vtable for CryptoPP::SHA256", referenced from:<br>
ndn::SecTpmFile::Impl::transformName(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 libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
CryptoPP::DL_SignerImpl<CryptoPP::DL_SignatureSchemeOptions<CryptoPP::DL_SS<CryptoPP::DL_Keys_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_Algorithm_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_SignatureMessageEncodingMethod_DSA, CryptoPP::SHA256,
int>, CryptoPP::DL_Keys_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_Algorithm_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_SignatureMessageEncodingMethod_DSA,
CryptoPP::SHA256>
>::NewSignatureAccumulator(CryptoPP::RandomNumberGenerator&)
const in libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
CryptoPP::ClonableImpl<CryptoPP::SHA256,
CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone()
const in libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
CryptoPP::TF_ObjectImplBase<CryptoPP::TF_SignerBase,
CryptoPP::TF_SignatureSchemeOptions<CryptoPP::TF_SS<CryptoPP::PKCS1v15,
CryptoPP::SHA256, CryptoPP::RSA, int>, CryptoPP::RSA,
CryptoPP::PKCS1v15_SignatureMessageEncodingMethod,
CryptoPP::SHA256>,
CryptoPP::InvertibleRSAFunction>::NewSignatureAccumulator(CryptoPP::RandomNumberGenerator&)
const in libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
ndn::ndn_digestSha256(unsigned char const*, unsigned long,
unsigned char*) in libndn-cxx.a(crypto.cpp.2.o)<br>
ndn::crypto::sha256(unsigned char const*, unsigned long) in
libndn-cxx.a(crypto.cpp.2.o)<br>
CryptoPP::ClonableImpl<CryptoPP::SHA256,
CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone()
const in libndn-cxx.a(crypto.cpp.2.o)<br>
...<br>
NOTE: a missing vtable usually means the first non-inline virtual
member function has no definition.<br>
ld: symbol(s) not found for architecture x86_64<br>
clang: error: linker command failed with exit code 1 (use -v to see
invocation)<br>
<br>
Undefined symbols for architecture x86_64:<br>
"vtable for CryptoPP::SHA256", referenced from:<br>
ndn::ndn_digestSha256(unsigned char const*, unsigned long,
unsigned char*) in libndn-cxx.a(crypto.cpp.2.o)<br>
ndn::crypto::sha256(unsigned char const*, unsigned long) in
libndn-cxx.a(crypto.cpp.2.o)<br>
CryptoPP::ClonableImpl<CryptoPP::SHA256,
CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone()
const in libndn-cxx.a(crypto.cpp.2.o)<br>
ndn::SecTpmFile::Impl::transformName(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 libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
CryptoPP::DL_SignerImpl<CryptoPP::DL_SignatureSchemeOptions<CryptoPP::DL_SS<CryptoPP::DL_Keys_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_Algorithm_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_SignatureMessageEncodingMethod_DSA, CryptoPP::SHA256,
int>, CryptoPP::DL_Keys_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_Algorithm_ECDSA<CryptoPP::ECP>,
CryptoPP::DL_SignatureMessageEncodingMethod_DSA,
CryptoPP::SHA256>
>::NewSignatureAccumulator(CryptoPP::RandomNumberGenerator&)
const in libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
CryptoPP::ClonableImpl<CryptoPP::SHA256,
CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone()
const in libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
CryptoPP::TF_ObjectImplBase<CryptoPP::TF_SignerBase,
CryptoPP::TF_SignatureSchemeOptions<CryptoPP::TF_SS<CryptoPP::PKCS1v15,
CryptoPP::SHA256, CryptoPP::RSA, int>, CryptoPP::RSA,
CryptoPP::PKCS1v15_SignatureMessageEncodingMethod,
CryptoPP::SHA256>,
CryptoPP::InvertibleRSAFunction>::NewSignatureAccumulator(CryptoPP::RandomNumberGenerator&)
const in libndn-cxx.a(sec-tpm-file.cpp.2.o)<br>
...<br>
NOTE: a missing vtable usually means the first non-inline virtual
member function has no definition.<br>
ld: symbol(s) not found for architecture x86_64<br>
clang: error: linker command failed with exit code 1 (use -v to see
invocation)<br>
<br>
<span style="color: rgb(34, 34, 34); font-size: 0.9em;
background-color: rgb(247, 247, 247);" class=""></span>
</body>
</html>