Witam. Mam problem z Crypto++. Kompilowałem bibliotekę na wszelkie możliwe sposoby, ale wciąż nie mogę rozwiązać problemu z błędami linkera.
Otóż taki kod (bezsensowny, ale przynajmniej wiem, że działa)kompiluje się bez problemu
int _tmain(int argc, _TCHAR* argv[])
{
CryptoPP::HMAC<CryptoPP::SHA256> hmac;
return 0;
}
Natomiast, jeśli chcę użyć nie-szyfrujących algorytmów jak np. GZip to VC++10 Express wypluwa takie o to błędy
1>aaaaaaa.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP::CRC32::CRC32(void)" (??0CRC32@CryptoPP@@QAE@XZ)
1>aaaaaaa.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP::Deflator::Deflator(class CryptoPP::BufferedTransformation *,int,int,bool)" (??0Deflator@CryptoPP@@QAE@PAVBufferedTransformation@1@HH_N@Z)
1>aaaaaaa.obj : error LNK2001: unresolved external symbol "public: virtual unsigned int __thiscall CryptoPP::Deflator::Put2(unsigned char const *,unsigned int,int,bool)" (?Put2@Deflator@CryptoPP@@UAEIPBEIH_N@Z)
1>aaaaaaa.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::Deflator::IsolatedInitialize(class CryptoPP::NameValuePairs const &)" (?IsolatedInitialize@Deflator@CryptoPP@@UAEXABVNameValuePairs@2@@Z)
1>aaaaaaa.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall CryptoPP::Deflator::IsolatedFlush(bool,bool)" (?IsolatedFlush@Deflator@CryptoPP@@UAE_N_N0@Z)
1>aaaaaaa.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::Gzip::WritePrestreamHeader(void)" (?WritePrestreamHeader@Gzip@CryptoPP@@MAEXXZ)
1>aaaaaaa.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::Gzip::ProcessUncompressedData(unsigned char const *,unsigned int)" (?ProcessUncompressedData@Gzip@CryptoPP@@MAEXPBEI@Z)
1>aaaaaaa.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::Gzip::WritePoststreamTail(void)" (?WritePoststreamTail@Gzip@CryptoPP@@MAEXXZ)
1>C:\Users_PMA\Documents\Visual Studio 2010\Projects\aaaaaaa\Debug\aaaaaaa.exe : fatal error LNK1120: 8 unresolved externals
Podobnie jest w przypadku próby użycia CRC32.
Jak to rozwiązać? Skoro algorytm HMAC i SHA256 działa, to znaczy, że lib jes podlinkowany ok. Jednak w przypadku Gzip błędy mówią zupełnie co innego.
Używana wersja Crypto++ to 5.6.2