Topic: Linking Error with VC++ 6
[Migrated from SourceForge forums]
(2010-06-08 17:35:29 UTC)
I am running VC++ 6, with the latest service pack. I compiled cyassl.lib on it, with 3 warnings:
src\cyassl_int.c(3182) : warning C4018: '!=' : signed/unsigned mismatch
src\cyassl_int.c(3883) : warning C4018: '==' : signed/unsigned mismatch
cyassl_int.c(1936) : warning C4761: integral size mismatch in argument; conversion supplied
Also, when I try to link the library and use the functions in my project, I get:
cyassl.lib(ssl.obj) : error LNK2001: unresolved external symbol _Base16Decode
Suffice to say, all the sample projects crash with the same error upon compilation.
Also, using VS2008 will bypass the problem. But I need to have my project in VC++, and I cannot use the library if compiled from another compiler.
Looking forward to a response.
(2010-06-08 17:57:25 UTC)
I guess we need to remove support for MSVC6 since it's not being tested or supported anymore.
The linker error is because cyassl.lib is being built with OPENSSL_EXTRA defined and ctaocrypt.lib is being built without it defined. Adding OPENSSL_EXTRA as a preprocessor define for ctaocrypt should fix the problem. You could also try removing OPENSSL_EXTRA from wolfSSL.
Just curious, what does a nearly 13 year old compiler have that the newer ones don't?
(2010-06-08 18:16:41 UTC)
I bow to you. You really made my day.
As for the reason, this nearly 13 year old compiler uses a nearly 13 year old DLL which makes all of my software run under 98/2k/XP and later without installing the Redistributable Package & fully update the computer in order for it to run. It's just that plug-and-play.
Thank you so much, greatly appreciated.