?
Mittlerweile funktioniert es wieder nicht mehr... Bin schon völlig am verzweifeln. Ich bin mir sicher, dass es genau so wie es eingestellt ist schon funktioniert hat, das ist wirklich zum verzweifeln.
Folgendes: Wie ich aus diesem FAQ-Eintrag entnommen hatte habe ich bei Project->Project Options...->Configure Options->Linker Flags(LDFLAGS) folgendes eingefügt: -L/home/USER/cryptotest/src/cryptopp551/libcryptopp.a
Er bindet diese Datei auch ein, ich erhalte zumindest keine Fehlermeldungen, wenn ich einen Tippfehler einbaue erscheint diese (à la "Datei nicht gefunden").
Im Quelltext binde ich wie gesagt nur noch die Header-Files ein. Ich war mir so sicher gewesen, dass es genau so schon geklappt hat...
Nochmal Quelltext:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <iostream>
#include <cstdlib>
#include "cryptopp551/cryptlib.h"
#include "cryptopp551/sha.h"
using namespace CryptoPP;
using namespace std;
int main(int argc, char *argv[])
{
byte const* pbData = (byte*) "asdf";
unsigned int nDataLen = 4;
byte abDigest[SHA::DIGESTSIZE];
SHA().CalculateDigest(abDigest, pbData, nDataLen);
cout << "Hello, world!" << abDigest << endl;
return EXIT_SUCCESS;
}
Und Fehlermeldung:
cd '/home/USER/cryptotestdebug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake
gmake all-recursive
Making all in src
linking cryptotest (libtool)
linking cryptotest (g++)
cryptotest.o: In function HashTransformation': /home/USER/cryptotestsrc/cryptopp551/cryptlib.h:526: undefined reference tovtable for CryptoPP::HashTransformation'
cryptotest.o: In function IteratedHashBase': /home/USER/cryptotestsrc/cryptopp551/iterhash.h:22: undefined reference tovtable for CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>'
cryptotest.o: In function CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>::HashEndianCorrectedBlock(unsigned int const*)': /home/USER/cryptotestsrc/cryptopp551/iterhash.h:89: undefined reference toCryptoPP::SHA1::Transform(unsigned int*, unsigned int const*)'
cryptotest.o: In function CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>::Init()': /home/USER/cryptotestsrc/cryptopp551/iterhash.h:90: undefined reference toCryptoPP::SHA1::InitState(unsigned int*)'
cryptotest.o: In function ~HashTransformation': /home/USER/cryptotestsrc/cryptopp551/cryptlib.h:526: undefined reference tovtable for CryptoPP::HashTransformation'
cryptotest.o: In function ~IteratedHashBase': /home/USER/cryptotestsrc/cryptopp551/iterhash.h:22: undefined reference tovtable for CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>'
cryptotest.o: In function IteratedHash': /home/USER/cryptotestsrc/cryptopp551/iterhash.h:56: undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::IteratedHashBase()'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP4SHA1E[vtable for CryptoPP::SHA1]+0x30): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)' cryptotest.o:\*wegdenk\*(.rodata._ZTVN8CryptoPP4SHA1E[vtable for CryptoPP::SHA1]+0x38): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP4SHA1E[vtable for CryptoPP::SHA1]+0x48): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()' cryptotest.o:\*wegdenk\*(.rodata._ZTVN8CryptoPP4SHA1E[vtable for CryptoPP::SHA1]+0x60): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalBlockSize() const'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP4SHA1E[vtable for CryptoPP::SHA1]+0x68): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalDataAlignment() const' cryptotest.o:\*wegdenk\*(.rodata._ZTVN8CryptoPP4SHA1E[vtable for CryptoPP::SHA1]+0x88): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP4SHA1E[vtable for CryptoPP::SHA1]+0x98): undefined reference to CryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)' cryptotest.o:\*wegdenk\*(.rodata._ZTVN8CryptoPP4SHA1E[vtable for CryptoPP::SHA1]+0xc0): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTIN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[typeinfo for CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>]+0x10): undefined reference to typeinfo for CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ELj20ENS\_4SHA1ELj0EEE[vtable for CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>]+0x30): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable for CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>]+0x38): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ELj20ENS\_4SHA1ELj0EEE[vtable for CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>]+0x48): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable for CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>]+0x60): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalBlockSize() const' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ELj20ENS\_4SHA1ELj0EEE[vtable for CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>]+0x68): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalDataAlignment() const'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable for CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>]+0x88): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned long)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ELj20ENS\_4SHA1ELj0EEE[vtable for CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>]+0x98): undefined reference toCryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable for CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u>]+0xc0): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP12ClonableImplINS\_4SHA1ENS\_13AlgorithmImplINS\_12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEES1\_EEEE[vtable for CryptoPP::ClonableImpl<CryptoPP::SHA1, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1> >]+0x30): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[vtable for CryptoPP::ClonableImpl<CryptoPP::SHA1, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1> >]+0x38): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP12ClonableImplINS\_4SHA1ENS\_13AlgorithmImplINS\_12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEES1\_EEEE[vtable for CryptoPP::ClonableImpl<CryptoPP::SHA1, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1> >]+0x48): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[vtable for CryptoPP::ClonableImpl<CryptoPP::SHA1, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1> >]+0x60): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalBlockSize() const' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP12ClonableImplINS\_4SHA1ENS\_13AlgorithmImplINS\_12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEES1\_EEEE[vtable for CryptoPP::ClonableImpl<CryptoPP::SHA1, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1> >]+0x68): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalDataAlignment() const'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[vtable for CryptoPP::ClonableImpl<CryptoPP::SHA1, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1> >]+0x88): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned long)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP12ClonableImplINS\_4SHA1ENS\_13AlgorithmImplINS\_12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEES1\_EEEE[vtable for CryptoPP::ClonableImpl<CryptoPP::SHA1, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1> >]+0x98): undefined reference toCryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[vtable for CryptoPP::ClonableImpl<CryptoPP::SHA1, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1> >]+0xc0): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP13AlgorithmImplINS\_12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEENS\_4SHA1EEE[vtable for CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1>]+0x30): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[vtable for CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1>]+0x38): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP13AlgorithmImplINS\_12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEENS\_4SHA1EEE[vtable for CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1>]+0x48): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[vtable for CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1>]+0x60): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalBlockSize() const' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP13AlgorithmImplINS\_12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEENS\_4SHA1EEE[vtable for CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1>]+0x68): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalDataAlignment() const'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[vtable for CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1>]+0x88): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Truncated Final(unsigned char*, unsigned long)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP13AlgorithmImplINS\_12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEENS\_4SHA1EEE[vtable for CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1>]+0x98): undefined reference toCryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[vtable for CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA1>]+0xc0): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP12IteratedHashIjNS\_10EnumToTypeINS_9ByteOrderELi1EEE Lj64ENS_18HashTransformationEEE[vtable for CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>]+0x30): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable for CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>]+0x38): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEE[vtable for CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>]+0x48): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable for CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>]+0x60): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalBlockSize() const' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEE[vtable for CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>]+0x68): undefined reference toCryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalDataAlignment() const'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable for CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>]+0x88): undefined reference to CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned long)' cryptotest.o:\*wegdenk\*(.rodata.\_ZTVN8CryptoPP12IteratedHashIjNS\_10EnumToTypeINS\_9ByteOrderELi1EEELj64ENS\_18HashTransformationEEE[vtable for CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>]+0x98): undefined reference toCryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)'
cryptotest.o:*wegdenk*(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable for CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>]+0xc0): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)'
collect2: ld returned 1 exit status
gmake[2]: *** [test] Error 1
gmake[1]: *** [all-recursive] Error 1
gmake: *** [all] Error 2
*** Exited with status: 2 ***