Пример LibCrypto SHA1 с g++ на MSYS не может быть собран

Я пытаюсь изучить SHA1 на C++, используя LibCrypto, и я использую MSYS2. Я уже сталкивался с некоторыми потоками в stackoverflow, такими как Неопределенная ссылка на CryptoPP::AlignedAllocate(unsigned int) но я все равно не могу собрать код. Это простой код, написанный на Crypto++ Wiki https://www.cryptopp.com/wiki/SHA, я пытался

#include "cryptlib.h"
#include "sha.h"
#include <iostream>

int main (int argc, char* argv[])
{
    using namespace CryptoPP;

    SHA1 hash;  
    std::cout << "Name: " << hash.AlgorithmName() << std::endl;
    std::cout << "Digest size: " << hash.DigestSize() << std::endl;
    std::cout << "Block size: " << hash.BlockSize() << std::endl;

    return 0; 
}

Но в конечном итоге с некоторыми ошибками

Ben@BEN-ASUS-A43SV MSYS /d/Users/Ben/My Desktop/crypto
$ g++ main.cpp -o main.exe -I . -lpthread
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.text$_ZN8CryptoPP18HashTransformationC2Ev[_ZN8CryptoPP18HashTransformationC2Ev]+0x19): undefined reference to `CryptoPP::Algorithm::Algorithm(bool)'
/tmp/ccYhY8rM.o:main.cpp:(.text$_ZN8CryptoPP18HashTransformationC2Ev[_ZN8CryptoPP18HashTransformationC2Ev]+0x19): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CryptoPP::Algorithm::Algorithm(bool)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.text$_ZN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EE4InitEv[_ZN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EE4InitEv]+0x20): undefined reference to `CryptoPP::SHA1::InitState(unsigned int*)'
/tmp/ccYhY8rM.o:main.cpp:(.text$_ZN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EE4InitEv[_ZN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EE4InitEv]+0x20): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CryptoPP::SHA1::InitState(unsigned int*)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE[_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE]+0x38): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE[_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE]+0x40): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE[_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE]+0x50): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE[_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE]+0x90): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE[_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE]+0xa0): undefined reference to `CryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE[_ZTVN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EEE]+0xc8): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE]+0x38): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE]+0x40): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE]+0x50): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE]+0x90): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE]+0xa0): undefined reference to `CryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE[_ZTVN8CryptoPP12ClonableImplINS_4SHA1ENS_13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEES1_EEEE]+0xc8): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE]+0x38): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE]+0x40): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE]+0x50): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE]+0x90): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE]+0xa0): undefined reference to `CryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE[_ZTVN8CryptoPP13AlgorithmImplINS_12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEENS_4SHA1EEE]+0xc8): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE]+0x38): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE]+0x40): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE]+0x50): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE]+0x90): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE]+0xa0): undefined reference to `CryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE[_ZTVN8CryptoPP12IteratedHashIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ENS_18HashTransformationEEE]+0xc8): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE[_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE]+0x38): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Update(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE[_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE]+0x40): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::CreateUpdateSpace(unsigned long&)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE[_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE]+0x50): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::Restart()'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE[_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE]+0x90): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE[_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE]+0xa0): undefined reference to `CryptoPP::HashTransformation::TruncatedVerify(unsigned char const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE[_ZTVN8CryptoPP16IteratedHashBaseIjNS_18HashTransformationEEE]+0xc8): undefined reference to `CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashMultipleBlocks(unsigned int const*, unsigned long)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.text$_ZN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EE24HashEndianCorrectedBlockEPKj[_ZN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EE24HashEndianCorrectedBlockEPKj]+0x2b): undefined reference to `CryptoPP::SHA1::Transform(unsigned int*, unsigned int const*)'
/tmp/ccYhY8rM.o:main.cpp:(.text$_ZN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EE24HashEndianCorrectedBlockEPKj[_ZN8CryptoPP31IteratedHashWithStaticTransformIjNS_10EnumToTypeINS_9ByteOrderELi1EEELj64ELj20ENS_4SHA1ELj0ELb0EE24HashEndianCorrectedBlockEPKj]+0x2b): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CryptoPP::SHA1::Transform(unsigned int*, unsigned int const*)'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$.refptr._ZTVN8CryptoPP4SHA1E[.refptr._ZTVN8CryptoPP4SHA1E]+0x0): undefined reference to `vtable for CryptoPP::SHA1'
/usr/lib/gcc/x86_64-pc-msys/9.3.0/../../../../x86_64-pc-msys/bin/ld: /tmp/ccYhY8rM.o:main.cpp:(.rdata$.refptr._ZTVN8CryptoPP18HashTransformationE[.refptr._ZTVN8CryptoPP18HashTransformationE]+0x0): undefined reference to `vtable for CryptoPP::HashTransformation'
collect2: error: ld returned 1 exit status

Я очень запутался, потому что сначала я попытался использовать https://packages.msys2.org/package/mingw-w64-x86_64-crypto++ пакет на msys2, но все еще не работает, вторая попытка Я попытался использовать исходный код с веб-сайта LibCrypto.

Любая помощь приветствуется. Спасибо

2-я попытка, которую я сделал, использовала флаг -lcrypto, но не повезло. Во всяком случае, я попробовал его с Fedora с g++ -DNDEBUG -g3 -O2 -Wall -Wextra -o test main.cpp -L/usr/lib64 -lcryptopp, и он отлично работает. Я действительно хочу знать, почему это не работает. хм... на MSYS я уже установил libcryptopp.a. хм..


person Benyamin Limanto    schedule 29.06.2020    source источник
comment
Это ваша команда g++ main.cpp -o main.exe -I . -lpthread? Похоже, вы не связываетесь с библиотекой libcrypto.   -  person john    schedule 29.06.2020
comment
По крайней мере, вам нужно добавить -lcrypto в конце вашей команды сборки (не совсем уверен, где именно). Попробуйте g++ main.cpp -o main.exe -I . -lcrypto -lpthread   -  person john    schedule 29.06.2020
comment
@john Я пытался, и он все еще не работает на MSYS, и я действительно хотел знать, почему. Во всяком случае, ССЫЛКА, указанная выше, в которой говорится, что на нее ответили, не является ответом на эту проблему. Я пробовал в Fedora с g++ -DNDEBUG -g3 -O2 -Wall -Wextra -o test main.cpp -L/usr/lib64 -lcryptopp работает, но не в Windows, я имею в виду, что я пробовал g++ -DNDEBUG -g3 -O2 -Wall -Wextra -o test main.cpp -L/mingw64/lib -lcryptopp и g++ -DNDEBUG -g3 -O2 -Wall -Wextra -o test main.cpp -l:libcryptopp.a, но проблема не решена, и набор не найден. а в федоре работает.   -  person Benyamin Limanto    schedule 29.06.2020
comment
Если вы получаете сообщение об ошибке not found и у вас есть встроенная библиотека, это просто означает, что вы неправильно задали путь поиска библиотеки (опция -L).   -  person john    schedule 29.06.2020
comment
@john nah Так и должно быть, но я уже установил его с помощью -L/mingw64/lib, а библиотека .a находится в /mingw64/lib/libcryptopp.a   -  person Benyamin Limanto    schedule 29.06.2020
comment
Может ли это быть проблемой 32-битной или 64-битной версии? Я думаю, что если вы создаете 32-битное приложение, любые 64-битные библиотеки игнорируются.   -  person john    schedule 29.06.2020
comment
@john Как это узнать? Я имею в виду, как это отследить, потому что это всего лишь простой код из вики, см. cryptopp.com/wiki/SHA., я думаю, проблем с 32 или 64 быть не должно.   -  person Benyamin Limanto    schedule 29.06.2020
comment
Ваша библиотека (очевидно) 64-битная, потому что -L/mingw64/lib. Команда gcc -v сообщит вам, какой у вас компилятор: 32-битный или 64-битный. Я просто предположил, не воображайте, что я знаю, о чем говорю.   -  person john    schedule 29.06.2020
comment
Глядя на вывод выше, кажется, что у вас есть 64-битный компилятор.   -  person john    schedule 29.06.2020
comment
@john Я уже спрашиваю, ребята, msys2, и я использую не тот g++, поэтому g++, который у меня есть, не тот, у кого есть библиотека. Но кажется, некоторые из ваших утверждений верны.   -  person Benyamin Limanto    schedule 29.06.2020