Hello together,
I'm a new user of the Crypto++ library and just downloaded it about a week ago.
I got the library integrated into our project and it's working fine. Thank's to everyone who contributed to this great work.
I'm working on a Win7 64 bit and with Visual Studio 2015.
However I'm a little irritated, because I get LNK4221 error in project cryptlib even for the original solution cryptest which is shipped with the code:
strciphr.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library [c:\cryptopp\cryptlib.vcxproj]
I get this warnings for object files strciphr.obj, simple.obj, polynomi.obj and algebra.obj.
Looking into these files, I figured that these files consist of definitions / implementations for member functions of template classes. What's the point here? From my understanding templates should in general either be in a header file or be have an explicit instansiation inside the cpp.
https://isocpp.org/wiki/faq/templates#templates-defn-vs-decl also discusses this topic, mentioning that my understanding contains some "simplification". So maybe I miss a relevant point here.
simple.cpp does not contain anything at all. oO
What's the point of theses files, do I need them at all?
Can/Should I disable these warnings?
What would be the best way to archive this?
And shouldn't this solution be applied to the public project and not only locally in my project?
However it did not help me regarding my uncertainess...
Regards,
Jan
PS: I also get the warning C4456 for declaration of variable "block" in aria.cpp in lines 151 and 156. Do I get the intention of the code wrong, or would it be enought to just rename these variables to something like "blockTemp"?