Thanks for the tip. I ended up using your second suggestion, i.e. generating the DLL + export lib as well as the static library built with the "CRYPTOPP_IMPORTS" macro, and linking my code against both.
On Sep 30, 5:31 pm, "Wei Dai" <[EMAIL PROTECTED]> wrote: > Non-FIPS-related algorithms such Base 64 encoder/decoder, are not exported > from the DLL. There are two ways you can deal with this, either change > Crypto++ to export those classes, by using CRYPTOPP_DLL macro, or link with > both the DLL export library and a static library that contains the non-DLL > classes and functions. The latter can be build by using the "DLL-Import" > configuration of the cryptlib project. > > See also "MSVC-Specific Information" section in Readme.txt. > > -------------------------------------------------- > From: <[EMAIL PROTECTED]> > Sent: Friday, September 28, 2007 1:15 PM > To: "Crypto++ Users" <[EMAIL PROTECTED]> > Subject: Link errors for Crypto++ 5.4 on Win32 > > > > > I'm receiving the following errors in my project when I try to link > > against cryptopp (I'm building the dynamic version of Crypto++, which > > produces cryptopp.dll, cryptopp.exp and cryptopp.lib --> this is > > the .lib I'm linking against): > > > ----------------------------------------------------------------------------------------------------------------------------------------------------- > > Crypto.obj : error LNK2019: unresolved external symbol "public: > > virtual void __t > > > hiscall CryptoPP::Base64Encoder::IsolatedInitialize(class > > CryptoPP::NameValuePai > > > rs const &)" (? > > [EMAIL PROTECTED]@CryptoPP@@UAEXABVNameValuePairs@ > > > 2@@Z) referenced in function "public: __thiscall > > CryptoPP::Base64Encoder::Base64 > > > Encoder(class CryptoPP::BufferedTransformation *,bool,int)" (?? > > [EMAIL PROTECTED] > > > yptoPP@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@Z) > > > Crypto.obj : error LNK2019: unresolved external symbol "private: > > static int cons > > > t * __cdecl CryptoPP::Base64Decoder::GetDecodingLookupArray(void)" (? > > GetDecoding > > > [EMAIL PROTECTED]@CryptoPP@@CAPBHXZ) referenced in function > > "public: __t > > > hiscall CryptoPP::Base64Decoder::Base64Decoder(class > > CryptoPP::BufferedTransform > > > ation *)" (?? > > [EMAIL PROTECTED]@@[EMAIL PROTECTED]@1@@Z) > > > Crypto.obj : error LNK2019: unresolved external symbol "public: > > virtual void __t > > > hiscall CryptoPP::Base32Encoder::IsolatedInitialize(class > > CryptoPP::NameValuePai > > > rs const &)" (? > > [EMAIL PROTECTED]@CryptoPP@@UAEXABVNameValuePairs@ > > > 2@@Z) referenced in function "public: __thiscall > > CryptoPP::Base32Encoder::Base32 > > > Encoder(class CryptoPP::BufferedTransformation *,bool,int,class > > std::basic_strin > > > g<char,struct std::char_traits<char>,class std::allocator<char> > > > const &,class > > > std::basic_string<char,struct std::char_traits<char>,class > > std::allocator<char> > > >> const &)" > >> ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@[EMAIL PROTECTED] > > > [EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL PROTECTED]@2@@std@@[EMAIL > > PROTECTED]) > > > Crypto.obj : error LNK2019: unresolved external symbol "private: > > static int cons > > > t * __cdecl > > CryptoPP::Base32Decoder::GetDefaultDecodingLookupArray(void)" (?GetD > > > [EMAIL PROTECTED]@CryptoPP@@CAPBHXZ) referenced > > in functio > > > n "public: __thiscall CryptoPP::Base32Decoder::Base32Decoder(class > > CryptoPP::Buf > > > feredTransformation *)" (?? > > [EMAIL PROTECTED]@@[EMAIL PROTECTED] > > > [EMAIL PROTECTED]@@Z) > > > Crypto.obj : error LNK2001: unresolved external symbol "public: > > virtual void __t > > > hiscall CryptoPP::Base32Decoder::IsolatedInitialize(class > > CryptoPP::NameValuePai > > > rs const &)" (? > > [EMAIL PROTECTED]@CryptoPP@@UAEXABVNameValuePairs@ > > > 2@@Z) > > > Crypto.obj : error LNK2001: unresolved external symbol "public: static > > class std > > > ::basic_string<char,struct std::char_traits<char>,class > > std::allocator<char> > c > > > onst CryptoPP::BufferedTransformation::NULL_CHANNEL" (? > > [EMAIL PROTECTED] > > > [EMAIL PROTECTED]@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@@V? > > [EMAIL PROTECTED]@2@@s > > > td@@B) > > > Crypto.obj : error LNK2001: unresolved external symbol "class > > CryptoPP::NullName > > > ValuePairs const CryptoPP::g_nullNameValuePairs" (? > > [EMAIL PROTECTED] > > > @@[EMAIL PROTECTED]@B) > > > Crypto.obj : error LNK2001: unresolved external symbol "bool (__cdecl* > > CryptoPP: > > > :g_pAssignIntToInteger)(class type_info const &,void *,void const > > *)" (?g_pAssig > > > [EMAIL PROTECTED]@@3P6A_NABVtype_info@@[EMAIL PROTECTED]) > > > build\win32-dynamic-debug\base\src\base.dll : fatal error LNK1120: 8 > > unresolved > > > externals > > ----------------------------------------------------------------------------------------------------------------------------------------------------- > > > I'm using sCons to build my own version of Crypto++ using the MSVC > > 2005 toolchain and the following DEFINES: > > > "WIN32", > > > "_WINDOWS", > > > "_USRDLL", > > > "_MBCS", > > > "CRYPTOPP_EXPORTS", > > > "CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2=1", > > > "USE_PRECOMPILED_HEADERS", > > > Any ideas? > > > Thanks in advance, > > > Nick --~--~---------~--~----~------------~-------~--~----~ 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. -~----------~----~----~----~------~----~------~--~---
