title: Linker errors when building DLL dependent on static lib Crypto++
body: <p>Here is a preface - I have a C++ + Qt application, it consists of several projects and we are using MSVC 2012 to build it. Now, I'm implementing build scripts to start deploying build server. So, I started creating Qt .pro files for each and every project we have.</p>
  
  <p><strong>Now the problem</strong> - we use Crypto++ library(<a href="http://www.cryptopp.com/" rel="nofollow">http://www.cryptopp.com/</a>) which we build from source code and the output is static lib, and we have DLL which depends on cryptlib.lib. </p>
  
  <p>I wrote .pro file for Cryptlib and I'm able to build it using qmake/jom</p>
  
  <pre><code>QT           -= core gui
  QMAKE_CFLAGS += /Zc:wchar_t
  
  TEMPLATE = lib
  TARGET   = cryptlib
  
  Release:DESTDIR = ./Release
  Debug:DESTDIR   = ./Debug
  
  CONFIG  += staticlib precompile_header
  DEFINES += _USING_V110_SDK71_ WINVER=0x0501 WIN32 _WINDOWS _MBCS
  DEFINES -= UNICODE
  
  PRECOMPILED_HEADER = pch.h
  DEPENDPATH += .
  
  include(CryptoPP.pri)@
  </code></pre>
  
  <p>I wrote .pro file for my DLL - it compiles fine, <em>but I'm getting linker errors on linkage phase</em>. The most interesting thing is that when I build cryptlib with MSVC2012 and <em>then</em> build DLL with qmake - then it link OK.</p>
  
  <p>What could be wrong? I checked all proj settings in MSVC projects and applied in my pro files. I checked names mangling in both libs built with MSVC and QT - mangled names look the same. Now I got stuck</p>
  
  <pre><code>@# ----------------------------------------------------
  # This file is generated by the Qt Visual Studio Add-in.
  # ------------------------------------------------------
  
  QT           -= gui core
  QMAKE_CFLAGS += /Zc:wchar_t
  
  TEMPLATE = lib
  TARGET   = PSGLicensing
  
  Release:DESTDIR = ./Release
  Debug:DESTDIR   = ./Debug
  
  CONFIG  += dll
  DEFINES += _AFXDLL _USING_V110_SDK71_ WIN32 _WINDOWS _WINDLL _USRDLL DLL_LIBRARY PSGLICENSING_DLL_BUILD _MBCS _VC80_UPGRADE=0x0710
  DEFINES -= UNICODE
  
  PRECOMPILED_HEADER = stdafx.h
  DEPENDPATH += .
  
  win32:CONFIG(release, debug|release): LIBS += -L$$_PRO_FILE_PWD_/../CryptoPP/Release/ -lcryptlib
  else:win32:CONFIG(debug, debug|release): LIBS += -L$$_PRO_FILE_PWD_/../CryptoPP/Debug/ -lcryptlib
  
  INCLUDEPATH += $$_PRO_FILE_PWD_/../CryptoPP/
  DEPENDPATH += $$_PRO_FILE_PWD_/../CryptoPP/
  
  win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$_PRO_FILE_PWD_/../CryptoPP/Release/cryptlib.lib
  else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$_PRO_FILE_PWD_/../CryptoPP/Debug/cryptlib.lib
  
  include(PSGLicensing.pri)@
  </code></pre>
  
  <p>In MSVC2012 we have following settings for</p>
  
  <p><strong>CryptLib</strong></p>
  
  <pre><code>*Compiler:* /Yu"pch.h" /GS /GL /analyze- /W3 /Gy- /Zc:wchar_t /Zi /Gm- /O2 /Ob2 /Fd"Release\vc110.pdb" /fp:precise /Zp1 /D "_USING_V110_SDK71_" /D "NDEBUG" /D "_WINDOWS" /D "USE_PRECOMPILED_HEADERS" /D "WIN32" /D "WINVER=0x0501" /D "_VC80_UPGRADE=0x0710" /errorReport:prompt /GF- /WX- /Zc:forScope /arch:SSE /Gd /Oy /Oi /MD /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\cryptlib.pch" 
  
  *Linker:* /OUT:"SecretPath\CryptoPP\Release\cryptlib.lib" /LTCG /NOLOGO 
  </code></pre>
  
  <p>and here are settings for <strong>DLL</strong></p>
  
  <pre><code>*Compiler*: /Yu"stdafx.h" /GS /analyze- /W3 /Zc:wchar_t /I"SecretPath\PSGLicensing\IncludeExp" /Zi /Gm- /O2 /Fd"Release\vc110.pdb" /fp:precise /D "_USING_V110_SDK71_" /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "_USRDLL" /D "PSGLICENSING_DLL_BUILD" /D "_VC80_UPGRADE=0x0710" /D "_WINDLL" /D "_MBCS" /D "_AFXDLL" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /MD /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\PSGLicensing.pch" 
  
  *Linker:* /OUT:"SecretPah\PSGLicensing\Release\PSGLicensing.dll" /MANIFEST /PDB:"SecretPath\PSGLicensing\Release\PSGLicensing.pdb" /DYNAMICBASE:NO "..\CryptoPP\Release\cryptlib.lib" "SecretPath\CryptoPP\Release\cryptlib.lib" /DEF:".\PSGLicensing.def" /IMPLIB:"SecretPath\PSGLicensing\Release\PSGLicensing.lib" /DEBUG /DLL /MACHINE:X86 /OPT:REF /SAFESEH /INCREMENTAL:NO /PGD:"SecretPath\PSGLicensing\Release\PSGLicensing.pgd" /SUBSYSTEM:WINDOWS",5.01" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Release\PSGLicensing.dll.intermediate.manifest" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /TLBID:1 
  </code></pre>
  
  <p>Here is jom output</p>
  
  <pre><code>@   C:\Qt\Qt5.2.1\Tools\QtCreator\bin\jom.exe -f Makefile.Release
      link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /DLL /MANIFEST /MANIFESTFILE:Release\PSGLicensing.dll.embed.manifest /OUT:Release\PSGLicensing.dll @C:\Users\ANDRIY~1.GLO\AppData\Local\Temp\PSGLicensing.dll.6212.16.jom
     Creating library Release\PSGLicensing.lib and object Release\PSGLicensing.exp
  GenerateRandomBlock.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::CFB_CipherTemplate&lt;class CryptoPP::AbstractPolicyHolder&lt;class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy&gt; &gt;::ProcessData(unsigned char *,unsigned char const *,unsigned int)" (?ProcessData@?$CFB_CipherTemplate@V?$AbstractPolicyHolder@VCFB_CipherAbstractPolicy@CryptoPP@@VCFB_ModePolicy@2@@CryptoPP@@@CryptoPP@@UAEXPAEPBEI@Z)
  GenerateRandomBlock.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::CFB_CipherTemplate&lt;class CryptoPP::AbstractPolicyHolder&lt;class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy&gt; &gt;::Resynchronize(unsigned char const *,int)" (?Resynchronize@?$CFB_CipherTemplate@V?$AbstractPolicyHolder@VCFB_CipherAbstractPolicy@CryptoPP@@VCFB_ModePolicy@2@@CryptoPP@@@CryptoPP@@UAEXPBEH@Z)
  GenerateRandomBlock.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CryptoPP::CFB_CipherTemplate&lt;class CryptoPP::AbstractPolicyHolder&lt;class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy&gt; &gt;::UncheckedSetKey(unsigned char const *,unsigned int,class CryptoPP::NameValuePairs const &amp;)" (?UncheckedSetKey@?$CFB_CipherTemplate@V?$AbstractPolicyHolder@VCFB_CipherAbstractPolicy@CryptoPP@@VCFB_ModePolicy@2@@CryptoPP@@@CryptoPP@@MAEXPBEIABVNameValuePairs@2@@Z)
  GenerateRandomBlock.obj : error LNK2001: unresolved external symbol "private: virtual void __thiscall CryptoPP::CFB_EncryptionTemplate&lt;class CryptoPP::AbstractPolicyHolder&lt;class CryptoPP::CFB_CipherAbstractPolicy,class CryptoPP::CFB_ModePolicy&gt; &gt;::CombineMessageAndShiftRegister(unsigned char *,unsigned char *,unsigned char const *,unsigned int)" (?CombineMessageAndShiftRegister@?$CFB_EncryptionTemplate@V?$AbstractPolicyHolder@VCFB_CipherAbstractPolicy@CryptoPP@@VCFB_ModePolicy@2@@CryptoPP@@@CryptoPP@@EAEXPAE0PBEI@Z)
  cryptlib.lib(rsa.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Update(unsigned char const *,unsigned int)" (?Update@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPBEI@Z)
  LicensingEx.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Update(unsigned char const *,unsigned int)" (?Update@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPBEI@Z)
  cryptlib.lib(randpool.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Update(unsigned char const *,unsigned int)" (?Update@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPBEI@Z)
  cryptlib.lib(md5.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Update(unsigned char const *,unsigned int)" (?Update@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPBEI@Z)
  cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Update(unsigned char const *,unsigned int)" (?Update@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPBEI@Z)
  cryptlib.lib(rsa.obj) : error LNK2001: unresolved external symbol "public: virtual unsigned char * __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::CreateUpdateSpace(unsigned int &amp;)" (?CreateUpdateSpace@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEPAEAAI@Z)
  LicensingEx.obj : error LNK2001: unresolved external symbol "public: virtual unsigned char * __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::CreateUpdateSpace(unsigned int &amp;)" (?CreateUpdateSpace@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEPAEAAI@Z)
  cryptlib.lib(randpool.obj) : error LNK2001: unresolved external symbol "public: virtual unsigned char * __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::CreateUpdateSpace(unsigned int &amp;)" (?CreateUpdateSpace@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEPAEAAI@Z)
  cryptlib.lib(md5.obj) : error LNK2001: unresolved external symbol "public: virtual unsigned char * __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::CreateUpdateSpace(unsigned int &amp;)" (?CreateUpdateSpace@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEPAEAAI@Z)
  cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol "public: virtual unsigned char * __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::CreateUpdateSpace(unsigned int &amp;)" (?CreateUpdateSpace@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEPAEAAI@Z)
  cryptlib.lib(rsa.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Restart(void)" (?Restart@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXXZ)
  LicensingEx.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Restart(void)" (?Restart@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXXZ)
  cryptlib.lib(randpool.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Restart(void)" (?Restart@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXXZ)
  cryptlib.lib(md5.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Restart(void)" (?Restart@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXXZ)
  cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::Restart(void)" (?Restart@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXXZ)
  cryptlib.lib(rsa.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::TruncatedFinal(unsigned char *,unsigned int)" (?TruncatedFinal@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPAEI@Z)
  LicensingEx.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::TruncatedFinal(unsigned char *,unsigned int)" (?TruncatedFinal@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPAEI@Z)
  cryptlib.lib(randpool.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::TruncatedFinal(unsigned char *,unsigned int)" (?TruncatedFinal@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPAEI@Z)
  cryptlib.lib(md5.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::TruncatedFinal(unsigned char *,unsigned int)" (?TruncatedFinal@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPAEI@Z)
  cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::TruncatedFinal(unsigned char *,unsigned int)" (?TruncatedFinal@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@UAEXPAEI@Z)
  LicensingEx.obj : error LNK2001: unresolved external symbol "protected: virtual unsigned int __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::HashMultipleBlocks(unsigned int const *,unsigned int)" (?HashMultipleBlocks@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@MAEIPBII@Z)
  cryptlib.lib(md5.obj) : error LNK2001: unresolved external symbol "protected: virtual unsigned int __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::HashMultipleBlocks(unsigned int const *,unsigned int)" (?HashMultipleBlocks@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@MAEIPBII@Z)
  cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol "protected: virtual unsigned int __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::HashMultipleBlocks(unsigned int const *,unsigned int)" (?HashMultipleBlocks@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@MAEIPBII@Z)
  cryptlib.lib(rsa.obj) : error LNK2001: unresolved external symbol "protected: virtual unsigned int __thiscall CryptoPP::IteratedHashBase&lt;unsigned int,class CryptoPP::HashTransformation&gt;::HashMultipleBlocks(unsigned int const *,unsigned int)" (?HashMultipleBlocks@?$IteratedHashBase@IVHashTransformation@CryptoPP@@@CryptoPP@@MAEIPBII@Z)
  cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol "public: virtual class CryptoPP::Integer __thiscall CryptoPP::AbstractGroup&lt;class CryptoPP::Integer&gt;::ScalarMultiply(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)const " (?ScalarMultiply@?$AbstractGroup@VInteger@CryptoPP@@@CryptoPP@@UBE?AVInteger@2@ABV32@0@Z)
  cryptlib.lib(rsa.obj) : error LNK2001: unresolved external symbol "public: virtual class CryptoPP::Integer __thiscall CryptoPP::AbstractGroup&lt;class CryptoPP::Integer&gt;::ScalarMultiply(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)const " (?ScalarMultiply@?$AbstractGroup@VInteger@CryptoPP@@@CryptoPP@@UBE?AVInteger@2@ABV32@0@Z)
  cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol "public: virtual class CryptoPP::Integer __thiscall CryptoPP::AbstractGroup&lt;class CryptoPP::Integer&gt;::CascadeScalarMultiply(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)const " (?CascadeScalarMultiply@?$AbstractGroup@VInteger@CryptoPP@@@CryptoPP@@UBE?AVInteger@2@ABV32@000@Z)
  cryptlib.lib(rsa.obj) : error LNK2019: unresolved external symbol "public: virtual class CryptoPP::Integer __thiscall CryptoPP::AbstractGroup&lt;class CryptoPP::Integer&gt;::CascadeScalarMultiply(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)const " (?CascadeScalarMultiply@?$AbstractGroup@VInteger@CryptoPP@@@CryptoPP@@UBE?AVInteger@2@ABV32@000@Z) referenced in function "public: class CryptoPP::GetValueHelperClass&lt;class CryptoPP::InvertibleRSAFunction,class CryptoPP::RSAFunction&gt; &amp; __thiscall CryptoPP::GetValueHelperClass&lt;class CryptoPP::InvertibleRSAFunction,class CryptoPP::RSAFunction&gt;::operator()&lt;class CryptoPP::Integer&gt;(char const *,class CryptoPP::Integer const &amp; (__thiscall CryptoPP::InvertibleRSAFunction::*)(void)const )" (??$?RVInteger@CryptoPP@@@?$GetValueHelperClass@VInvertibleRSAFunction@CryptoPP@@VRSAFunction@2@@CryptoPP@@QAEAAV01@PBDP8InvertibleRSAFunction@1@BEABVInteger@1@XZ@Z)
  cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall CryptoPP::AbstractGroup&lt;class CryptoPP::Integer&gt;::SimultaneousMultiply(class CryptoPP::Integer *,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const *,unsigned int)const " (?SimultaneousMultiply@?$AbstractGroup@VInteger@CryptoPP@@@CryptoPP@@UBEXPAVInteger@2@ABV32@PBV32@I@Z)
  cryptlib.lib(rsa.obj) : error LNK2019: unresolved external symbol "public: virtual void __thiscall CryptoPP::AbstractGroup&lt;class CryptoPP::Integer&gt;::SimultaneousMultiply(class CryptoPP::Integer *,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const *,unsigned int)const " (?SimultaneousMultiply@?$AbstractGroup@VInteger@CryptoPP@@@CryptoPP@@UBEXPAVInteger@2@ABV32@PBV32@I@Z) referenced in function "public: void __thiscall CryptoPP::InvertibleRSAFunction::Initialize(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)" (?Initialize@InvertibleRSAFunction@CryptoPP@@QAEXABVInteger@2@00@Z)
  cryptlib.lib(integer.obj) : error LNK2019: unresolved external symbol "public: virtual class CryptoPP::Integer __thiscall CryptoPP::AbstractRing&lt;class CryptoPP::Integer&gt;::Exponentiate(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)const " (?Exponentiate@?$AbstractRing@VInteger@CryptoPP@@@CryptoPP@@UBE?AVInteger@2@ABV32@0@Z) referenced in function "class CryptoPP::Integer __cdecl CryptoPP::a_exp_b_mod_c(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)" (?a_exp_b_mod_c@CryptoPP@@YA?AVInteger@1@ABV21@00@Z)
  cryptlib.lib(rsa.obj) : error LNK2001: unresolved external symbol "public: virtual class CryptoPP::Integer __thiscall CryptoPP::AbstractRing&lt;class CryptoPP::Integer&gt;::Exponentiate(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)const " (?Exponentiate@?$AbstractRing@VInteger@CryptoPP@@@CryptoPP@@UBE?AVInteger@2@ABV32@0@Z)
  cryptlib.lib(integer.obj) : error LNK2019: unresolved external symbol "public: virtual class CryptoPP::Integer __thiscall CryptoPP::AbstractRing&lt;class CryptoPP::Integer&gt;::CascadeExponentiate(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)const " (?CascadeExponentiate@?$AbstractRing@VInteger@CryptoPP@@@CryptoPP@@UBE?AVInteger@2@ABV32@000@Z) referenced in function "public: virtual class CryptoPP::Integer __thiscall CryptoPP::ModularArithmetic::CascadeExponentiate(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)const " (?CascadeExponentiate@ModularArithmetic@CryptoPP@@UBE?AVInteger@2@ABV32@000@Z)
  cryptlib.lib(integer.obj) : error LNK2019: unresolved external symbol "public: virtual void __thiscall CryptoPP::AbstractRing&lt;class CryptoPP::Integer&gt;::SimultaneousExponentiate(class CryptoPP::Integer *,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const *,unsigned int)const " (?SimultaneousExponentiate@?$AbstractRing@VInteger@CryptoPP@@@CryptoPP@@UBEXPAVInteger@2@ABV32@PBV32@I@Z) referenced in function "public: virtual void __thiscall CryptoPP::ModularArithmetic::SimultaneousExponentiate(class CryptoPP::Integer *,class CryptoPP::Integer const &amp;,class CryptoPP::Integer const *,unsigned int)const " (?SimultaneousExponentiate@ModularArithmetic@CryptoPP@@UBEXPAVInteger@2@ABV32@PBV32@I@Z)
  cryptlib.lib(integer.obj) : error LNK2001: unresolved external symbol "public: virtual class CryptoPP::Integer const &amp; __thiscall CryptoPP::AbstractEuclideanDomain&lt;class CryptoPP::Integer&gt;::Gcd(class CryptoPP::Integer const &amp;,class CryptoPP::Integer const &amp;)const " (?Gcd@?$AbstractEuclideanDomain@VInteger@CryptoPP@@@CryptoPP@@UBEABVInteger@2@ABV32@0@Z)
  Release\PSGLicensing.dll : fatal error LNK1120: 16 unresolved externals
  @
  </code></pre>