Jed,
To build static openssl libraries; (libeay32.lib & ssleay32.lib)
> perl Configure VC-WIN32 no-rc5 no-idea no-mdc2
> ms\do_nasm
Edit: ms\nt.mak file (use any standard text editor)
change '/MD' to '/MT' in CFLAG
> nmake -f ms\nt.mak
libeay32.lib & ssleay32.lib will be built in directory out32; the necessary
include files will be built inc32\openssl
Just make sure you use /MT switch consistently when building your
application. If you attempt a 'debug' build of your apllication it will use
/MTd switch and will run into a conflict with library LIBCMT.lib; you can
choose not to do the debug build of your application or you can change /MTd
switch to /MT and define /define _DEBUG to /define NDEBUG
Cheers,
Saju
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Scott Rueter
Sent: Friday, February 01, 2008 12:48 PM
To: [email protected]
Subject: Re: Trying to statically link to libeay32.lib
Jed Mitten wrote:
>I am trying to statically link into libeay32.lib so that I can
>distribute my application as a single executable instead of packaging
>DLLs along with it. I am not new to programming, but I am new to
>using libraries in C/C++. I am also completely new to using OpenSSL
>in any application.
>
>I did some extensive research online (and in this group) to get to
>where I could actually compile OpenSSL on Win32 and link using Visual
>C++ Express 9.0, but when I run the application that compiles I get an
>error that libeay32.dll cannot be found. Thanks for any help or
>advice.
>
>
Option 1:
First, it seems that you have compiled a dll rather than a static lib
for openssl.
IE you used: nmake -f ms\ntdll.mak
If you want a static lib you need to run:
nmake -f ms\nt.dll
When you create a dll build it creates a .dll and .lib. The lib for
linking against when you make your own executable, but you will still
need to include the .dll in your distribution.
If you create a static build, all you will have is a .lib; no .dll will
be created.
Note however that your executable will be larger if you use a static
library.
Option 2:
The other option is to take your libeay32.dll and put it in the same
directory as your executable.
>#include <iostream>
>#include <string>
>#include <openssl/blowfish.h>
>using namespace std;
>
>
>int main(int argc, char *argv[]) {
> string skey = "secret_key";
> char *sdata = "This is a message that I would like to keep secret.
> Please do not allow this message to be read without authorization.";
>
> BF_KEY symKey;
> BF_set_key( &symKey, strlen(sdata), (const unsigned char *)sdata );
>
> cout << symKey.S;
>
> return 0;
>}
>
>--
>Jed Mitten
>______________________________________________________________________
>OpenSSL Project http://www.openssl.org
>User Support Mailing List [email protected]
>Automated List Manager [EMAIL PROTECTED]
>
>
>
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]