Subject: | installation problems with integration of OpenSSL |
I have encountered some problems when trying to install Filter-Crypto.
I use MinGW with a gcc-3.4.5 for compiling in a Windows XP environment
and OpenSSL-0.9.8b.
After extracting the Filter-Crypto.tar.gz, I ran "perl Makefile.pl".
The question "Where is your OpenSSL or SSLeay? []"
was answered with "c:\Programme\OpenSSL".
After that the installer came up with this error:
Found include directory ............ C:\Programme\OpenSSL\include
Found OpenSSL version .............. 0.9.8b
Error (109): No crypto library found at Makefile.PL line 83
In c:\Programme\OpenSSL my installation of Win32OpenSSL-v0.9.8b.exe
resides, which I have downloaded some time ago from
http://www.slproweb.com/products/Win32OpenSSL.html.
In c:\Programme\OpenSSL exists a directory "lib" with three
subdirectories: "Builder5", "MinGW" and "VC".
After patching "inc/Module/Install/PRIVATE/Filter/Crypto.pm", it worked
(See attached Crypto.pm.patch).
When trying to compile using "nmake", I got some "undefined reference"
errors when linking CryptFile\CryptFile.dll and Decrypt\Decrypt.dll:
CryptFile.o:CryptFile.c:(.text+0x309): undefined reference to
`EVP_aes_256_cbc'
So I added "c:\Programme\OpenSSL\lib\MinGW\libeay32.a" to the gcc-call.
After that, everything worked fine !
Maybe you can have a look at that. I do not think that my installation
of MinGW and OpenSSL is so "exotic" so maybe others have the same problems.
Thanks a lot !!!
Subject: | Crypto.pm.patch |
*** Crypto.pm Thu Aug 28 08:04:46 2008
--- Crypto.pm.patched Thu Aug 28 08:04:33 2008
***************
*** 518,524 ****
$lib_dir = $dir;
}
elsif ($self->is_win32()) {
! if (-d ($dir = catdir($prefix_dir, 'out32')) and
($lib_file, $lib_name) = $self->probe_for_lib_file($dir))
{
$lib_dir = $dir;
--- 518,529 ----
$lib_dir = $dir;
}
elsif ($self->is_win32()) {
! if (-d ($dir = catdir($prefix_dir, 'lib/MinGW')) and
! ($lib_file, $lib_name) = $self->probe_for_lib_file($dir))
! {
! $lib_dir = $dir;
! }
! elsif (-d ($dir = catdir($prefix_dir, 'out32')) and
($lib_file, $lib_name) = $self->probe_for_lib_file($dir))
{
$lib_dir = $dir;