diff options
author | Richard Levitte <levitte@openssl.org> | 2001-11-19 20:46:35 +0000 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2001-11-19 20:46:35 +0000 |
commit | a542db90c61ad90707c1cb44b350bc3a14fc0975 (patch) | |
tree | 76dd9795e163ed4f87a53d5182231c5beafbf3c8 /FAQ | |
parent | a7ce69dbd7a63062f9a986d45976f124433c66b0 (diff) | |
download | openssl-a542db90c61ad90707c1cb44b350bc3a14fc0975.tar.gz |
Extentions of the explanations to the linking problem on Win32. Provided by Andrew Gray <agray@iconsinc.com>
Diffstat (limited to 'FAQ')
-rw-r--r-- | FAQ | 41 |
1 files changed, 37 insertions, 4 deletions
@@ -467,10 +467,43 @@ OpenSSL. This is described in the threads(3) manpage. * I've compiled a program under Windows and it crashes: why? -This is usually because you've missed the comment in INSTALL.W32. You -must link with the multithreaded DLL version of the VC++ runtime library -otherwise the conflict will cause a program to crash: typically on the -first BIO related read or write operation. +This is usually because you've missed the comment in INSTALL.W32. +Your application must link against the same version of the Win32 +C-Runtime against which your openssl libraries were linked. The +default version for OpenSSL is /MD - "Multithreaded DLL". + +If you are using Microsoft Visual C++'s IDE (Visual Studio), in +many cases, your new project most likely defaulted to "Debug +Singlethreaded" - /ML. This is NOT interchangeable with /MD and your +program will crash, typically on the first BIO related read or write +operation. + +For each of the six possible link stage configurations within Win32, +your application must link against the same by which OpenSSL was +built. If you are using MS Visual C++ (Studio) this can be changed +by: + +1. Select Settings... from the Project Menu. +2. Select the C/C++ Tab. +3. Select "Code Generation from the "Category" drop down list box +4. Select the Appropriate library (see table below) from the "Use + run-time library" drop down list box. Perform this step for both + your debug and release versions of your application (look at the + top left of the settings panel to change between the two) + + Single Threaded /ML - MS VC++ often defaults to + this for the release + version of a new project. + Debug Single Threaded /MLd - MS VC++ often defaults to + this for the debug version + of a new project. + Multithreaded /MT + Debug Multithreaded /MTd + Multithreaded DLL /MD - OpenSSL defaults to this. + Debug Multithreaded DLL /MDd + +Note that debug and release libraries are NOT interchangeable. If you +built OpenSSL with /MD your application must use /MD and cannot use /MDd. * How do I read or write a DER encoded buffer using the ASN1 functions? |