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.

Best Regards

(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.
Best Regards.