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.
-~----------~----~----~----~------~----~------~--~---

Reply via email to