Hi Naja Melan,
Now i am getting the same type of error messages that
you mentioned earlier (http://groups.google.com/group/cryptopp-users/
browse_thread/thread/e88323e6093f2c68?fwc=1) . The error messages that
i am getting when i am linking with libcrypto++ are
**** Build of configuration Debug for project TimeTest ****
make -k all
Building target: TimeTest
Invoking: GCC C++ Linker
g++ -L/usr/lib -o"TimeTest" ./test.o -lcrypto++
/usr/lib/libcrypto++.so: undefined reference to `pthread_key_create'
/usr/lib/libcrypto++.so: undefined reference to `pthread_getspecific'
/usr/lib/libcrypto++.so: undefined reference to `pthread_key_delete'
/usr/lib/libcrypto++.so: undefined reference to `pthread_setspecific'
collect2: ld returned 1 exit status
make: *** [TimeTest] Error 1
make: Target `all' not remade because of errors.
Build complete for project TimeTest
and when i am linking with libcrpypt i am getting the following error
messages which i think are same as what you have got initially..
**** Build of configuration Debug for project TimeTest ****
make -k all
Building target: TimeTest
Invoking: GCC C++ Linker
g++ -L/usr/lib -o"TimeTest" ./test.o -lcrypt
./test.o: In function `HashTransformation':
/usr/include/crypto++/cryptlib.h:525: undefined reference to `vtable
for CryptoPP::HashTransformation'
./test.o: In function `IteratedHashBase':
/usr/include/crypto++/iterhash.h:22: undefined reference to `vtable
for CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>'
./test.o: In function
`CryptoPP::IteratedHashWithStaticTransform<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u,
CryptoPP::SHA1, 0u>::HashEndianCorrectedBlock(unsigned int const*)':
/usr/include/crypto++/iterhash.h:89: undefined reference to
`CryptoPP::SHA1::Transform(unsigned int*, unsigned int const*)'
./test.o: In function
`CryptoPP::IteratedHashWithStaticTransform<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u,
CryptoPP::SHA1, 0u>::Init()':
/usr/include/crypto++/iterhash.h:90: undefined reference to
`CryptoPP::SHA1::InitState(unsigned int*)'
./test.o: In function `~HashTransformation':
/usr/include/crypto++/cryptlib.h:525: undefined reference to `vtable
for CryptoPP::HashTransformation'
./test.o: In function `~IteratedHashBase':
/usr/include/crypto++/iterhash.h:22: undefined reference to `vtable
for CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>'
./test.o: In function `IteratedHash':
/usr/include/crypto++/iterhash.h:56: undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::IteratedHashBase()'
./test.o:(.rodata._ZTVN8CryptoPP4SHA1E[vtable for
CryptoPP::SHA1]+0x18): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned
int)'
./test.o:(.rodata._ZTVN8CryptoPP4SHA1E[vtable for
CryptoPP::SHA1]+0x1c): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned int&)'
./test.o:(.rodata._ZTVN8CryptoPP4SHA1E[vtable for
CryptoPP::SHA1]+0x24): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Restart()'
./test.o:(.rodata._ZTVN8CryptoPP4SHA1E[vtable for
CryptoPP::SHA1]+0x30): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalBlockSize() const'
./test.o:(.rodata._ZTVN8CryptoPP4SHA1E[vtable for
CryptoPP::SHA1]+0x34): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalDataAlignment() const'
./test.o:(.rodata._ZTVN8CryptoPP4SHA1E[vtable for
CryptoPP::SHA1]+0x44): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned
int)'
./test.o:(.rodata._ZTVN8CryptoPP4SHA1E[vtable for
CryptoPP::SHA1]+0x4c): undefined reference to
`CryptoPP::HashTransformation::TruncatedVerify(unsigned char const*,
unsigned int)'
./test.o:(.rodata._ZTVN8CryptoPP4SHA1E[vtable for
CryptoPP::SHA1]+0x60): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*,
unsigned int)'
./test.o:
(.rodata._ZTIN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[typeinfo
for CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>]+0x8): undefined reference to `typeinfo
for CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>'
./test.o:
(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable
for CryptoPP::IteratedHashWithStaticTransform<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u,
CryptoPP::SHA1, 0u>]+0x18): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned
int)'
./test.o:
(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable
for CryptoPP::IteratedHashWithStaticTransform<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u,
CryptoPP::SHA1, 0u>]+0x1c): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned int&)'
./test.o:
(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable
for CryptoPP::IteratedHashWithStaticTransform<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u,
CryptoPP::SHA1, 0u>]+0x24): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Restart()'
./test.o:
(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable
for CryptoPP::IteratedHashWithStaticTransform<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u,
CryptoPP::SHA1, 0u>]+0x30): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalBlockSize() const'
./test.o:
(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable
for CryptoPP::IteratedHashWithStaticTransform<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u,
CryptoPP::SHA1, 0u>]+0x34): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalDataAlignment() const'
./test.o:
(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable
for CryptoPP::IteratedHashWithStaticTransform<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u,
CryptoPP::SHA1, 0u>]+0x44): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned
int)'
./test.o:
(.rodata._ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0EEE[vtable
for CryptoPP::IteratedHashWithStaticTransform<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u,
CryptoPP::SHA1, 0u>]+0x4c): undefined reference to
`CryptoPP::HashTransformation::TruncatedVerify(unsigned char const*,
unsigned int)'
./test.o:
(.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>::HashMultipleBlocks(unsigned int const*,
unsigned int)'
./test.o:
(.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> >]+0x18): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned
int)'
./test.o:
(.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> >]+0x1c): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned int&)'
./test.o:
(.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> >]+0x24): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Restart()'
./test.o:
(.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 to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalBlockSize() const'
./test.o:
(.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> >]+0x34): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalDataAlignment() const'
./test.o:
(.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> >]+0x44): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned
int)'
./test.o:
(.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> >]+0x4c): undefined
reference to `CryptoPP::HashTransformation::TruncatedVerify(unsigned
char const*, unsigned int)'
./test.o:
(.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>::HashMultipleBlocks(unsigned int const*,
unsigned int)'
./test.o:
(.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>]+0x18): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned
int)'
./test.o:
(.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>]+0x1c): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned int&)'
./test.o:
(.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>]+0x24): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Restart()'
./test.o:
(.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 to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalBlockSize() const'
./test.o:
(.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>]+0x34): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalDataAlignment() const'
./test.o:
(.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>]+0x44): undefined
reference to `CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned
int)'
./test.o:
(.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>]+0x4c): undefined
reference to `CryptoPP::HashTransformation::TruncatedVerify(unsigned
char const*, unsigned int)'
./test.o:
(.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>::HashMultipleBlocks(unsigned int const*,
unsigned int)'
./test.o:
(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable
for CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>]+0x18): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned
int)'
./test.o:
(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable
for CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>]+0x1c): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned int&)'
./test.o:
(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable
for CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>]+0x24): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::Restart()'
./test.o:
(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable
for CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>]+0x30): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalBlockSize() const'
./test.o:
(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable
for CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>]+0x34): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::OptimalDataAlignment() const'
./test.o:
(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable
for CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>]+0x44): undefined reference to
`CryptoPP::IteratedHashBase<unsigned int,
CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned
int)'
./test.o:
(.rodata._ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[vtable
for CryptoPP::IteratedHash<unsigned int,
CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u,
CryptoPP::HashTransformation>]+0x4c): undefined reference to
`CryptoPP::HashTransformation::TruncatedVerify(unsigned char const*,
unsigned int)'
./test.o:
(.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>::HashMultipleBlocks(unsigned int const*,
unsigned int)'
collect2: ld returned 1 exit status
make: *** [TimeTest] Error 1
make: Target `all' not remade because of errors.
Build complete for project TimeTest
On Apr 19, 11:04 am, "Naja Melan" <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I see we were both not posting to the list. Let's post to the list, so
> others can help/follow/learn too. I include the missed messages here:
>
> On Fri, Apr 18, 2008 at 9:55 PM, Vinay Kumar Kamisetty <[EMAIL PROTECTED]>
> wrote:
>
>
>
> > Hi thanks for replying.. I did exactly what you told me to.. I am
> > getting the following errors.. I have installed crypto++ using the
> > synaptic package manager. I am trying to use the crypto++ library for
> > Unmanaged C++ project in Eclipse.
>
> > I am also attaching the makefile for your reference. Thanks a ton!!!
>
> > **** Build of configuration Debug for project Multicast ****
>
> > make -k all
> > Building target: Multicast
> > Invoking: GCC C++ Linker
> > g++ -L/usr/lib/crypto++ -o"Multicast" ./multi.o -lcrypto++
> > /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libcrypto++.so:
> > undefined reference to `pthread_key_create'
> > /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libcrypto++.so:
> > undefined reference to `pthread_getspecific'
> > /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libcrypto++.so:
> > undefined reference to `pthread_key_delete'
> > /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libcrypto++.so:
> > undefined reference to `pthread_setspecific'
> > collect2: ld returned 1 exit status
> > make: *** [Multicast] Error 1
> > make: Target `all' not remade because of errors.
> > Build complete for project Multicast
>
> > On Fri, 2008-04-18 at 17:13 +0200, Naja Melan wrote:
> > > hi,
>
> > > have a look in /usr/lib/
>
> > > i have two, depending on the version you use, you should have one or
> > > the other if crypto++ is properly installed:
>
> > > libcrypto++.so
> > > libcryptopp.so
>
> > > the linker option should look like this ( strip "lib" and ".so" ):
> > > -lcrypto++
>
> > > hope this helps.
> > > if it doesn't, please include what you are doing exactly and what
> > > happens. Maybe include your makefile, and the compilation log from g
> > > ++ , so we can have a look at what happens.
>
> > > good luck,
> > > naja
>
> The linker options are case sensitive. I think -L should refer to /usr/lib
> and not to /usr/lib/crypto++. Anyways, have a look at this excerpt from man
> g++. If it doesn't work from within eclipse, i would change the Makefile
> first and try typing make from the console, and if you get it working, then
> try to figure out the right settings in eclipse project properties...
> Eclipse dialogs aren't very user friendly... I had/ve quite some trouble
> myself getting things right.
>
> good luck
> naja
>
> *-L**dir*
> Add directory *dir* to the list of directories to be
> searched for *-l*.
>
> *-l**library*
> *-l* *library*
> Search the library named *library* when linking. (The second
> alternative with the library as a separate argument is only for
> POSIX compliance and is not recommended.)
>
> It makes a difference where in the command you write this option;
> the linker searches and processes libraries and object files in the
> order they are specified. Thus, *foo.o* *-lz* *bar.o*
> searches library *z*
> after file *foo.o* but before *bar.o*. If *bar.o* refers
> to functions in
> *z*, those functions may not be loaded.
>
> The linker searches a standard list of directories for the library,
> which is actually a file named *liblibrary.a*. The linker then
> uses
> this file as if it had been specified precisely by name.
>
> The directories searched include several standard system
> directories plus any that you specify with *-L*.
>
> Normally the files found this way are library files---archive files
> whose members are object files. The linker handles an archive file
> by scanning through it for members which define symbols that have
> so far been referenced but not defined. But if the file that is
> found is an ordinary object file, it is linked in the usual
> fashion. The only difference between using an *-l* option and
> specifying a file name is that *-l* surrounds *library*
> with *lib* and *.a*
> and searches several directories.
--~--~---------~--~----~------------~-------~--~----~
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.
-~----------~----~----~----~------~----~------~--~---