With 0.9.8h+ the static version of libraries are build using /MT compiler switch
The exact most recent compiler options are /MT /Zl, not /MT alone...
while dll are build like before using /MD. Using static libraries is not possible any more cause msvcrt is linked statically. Any reason for this sudden change?
See ticket #1230, e.g. at http://marc.info/?t=113031950800001&r=1&w=2.
/MT option is something that cannot be used for example to link static version of openssl to the .dll, cause in that case the .dll itself would need to be statically linked against msvcrt,
This is not true. You can link .obj modules originally compiled with /MT into .dll dynamically linked with msvcrt with /link /NODEFAULTLIB:LIBCMT option. But as of now you're excused from specifying /NODEFAULTLIB with openssl.lib, because /Zl option omits references to LIBCMT.
and that is not in majority cases usable Can we switch back to the old behavior by using /MD in both static and dll builds?
/MT /Zl allows you to use static library in either context, i.e. to produce statically linked application or another .dll. While /MD makes it impossible to use static library with statically linked application. Which is why /MT /Zl is chosen for static build. A.
______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [email protected] Automated List Manager [EMAIL PROTECTED]
