Compiling Net::SSL for Strawberry Perl: “openssl/ssl.h: No such file or directory”

旧时模样 提交于 2019-12-13 21:23:40

问题


When I try to install Net::SSL I get the following output. I don't understad it at all. Can anyone point me in the right direction, without getting to techy?

C:\Documents and Settings\Administrator>cpan
CPAN: File::HomeDir loaded ok (v0.69)

cpan shell -- CPAN exploration and modules installation (v1.9205)
ReadLine support enabled


cpan> install Net::SSL
Database was generated on Tue, 14 Aug 2012 14:54:56 GMT
Running install for module 'Net::SSL'
Running make for N/NA/NANIS/Crypt-SSLeay-0.64.tar.gz
Checksum for C:\strawberry\cpan\sources\authors\id\N\NA\NANIS\Crypt-SSLeay-0.64.
tar.gz ok
Scanning cache C:\strawberry\cpan\build for sizes
............................................................................DONE


CPAN.pm: Going to build N/NA/NANIS/Crypt-SSLeay-0.64.tar.gz

The test suite can attempt to connect to public servers to ensure that the
code is working properly. If you are behind a strict firewall or have no
network connectivity, these tests may fail (through no fault of the code).
Do you want to run the live tests (y/N)? [N]
WARNING: BUILD_REQUIRES is not a known parameter.
Checking if your kit is complete...
Looks good
Warning: prerequisite LWP::Protocol::https 6.02 not found.
'BUILD_REQUIRES' is not a known MakeMaker parameter name.
Writing Makefile for Crypt::SSLeay
cp lib/Crypt/SSLeay/X509.pm blib\lib\Crypt\SSLeay\X509.pm
cp lib/Net/SSL.pm blib\lib\Net\SSL.pm
cp SSLeay.pm blib\lib\Crypt\SSLeay.pm
cp lib/Crypt/SSLeay/Conn.pm blib\lib\Crypt\SSLeay\Conn.pm
cp lib/Crypt/SSLeay/CTX.pm blib\lib\Crypt\SSLeay\CTX.pm
cp lib/Crypt/SSLeay/MainContext.pm blib\lib\Crypt\SSLeay\MainContext.pm
cp lib/Crypt/SSLeay/Err.pm blib\lib\Crypt\SSLeay\Err.pm
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp  -typemap
C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap  SSLeay.xs > SSLeay.xs
c && C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv SSLeay.xsc SSLeay
.c
gcc -c  -IC:\strawberry\c\include       -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_
IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX
-s -O2    -DVERSION=\"0.64\"    -DXS_VERSION=\"0.64\"  "-IC:\strawberry\perl\lib
\CORE"   SSLeay.c
SSLeay.xs:35:25: openssl/ssl.h: No such file or directory
SSLeay.xs:36:28: openssl/crypto.h: No such file or directory
SSLeay.xs:37:25: openssl/err.h: No such file or directory
SSLeay.xs:38:26: openssl/rand.h: No such file or directory
SSLeay.xs:39:28: openssl/pkcs12.h: No such file or directory
SSLeay.xs:55: error: syntax error before '*' token
SSLeay.xs: In function `InfoCallback':
SSLeay.xs:60: error: `where' undeclared (first use in this function)
SSLeay.xs:60: error: (Each undeclared identifier is reported only once
SSLeay.xs:60: error: for each function it appears in.)
SSLeay.xs:60: error: `SSL_ST_MASK' undeclared (first use in this function)
SSLeay.xs:62: error: `SSL_ST_CONNECT' undeclared (first use in this function)
SSLeay.xs:64: error: `SSL_ST_ACCEPT' undeclared (first use in this function)
SSLeay.xs:69: error: `SSL_CB_LOOP' undeclared (first use in this function)
SSLeay.xs:70: error: `s' undeclared (first use in this function)
SSLeay.xs:72: error: `SSL_CB_ALERT' undeclared (first use in this function)
SSLeay.xs:73: error: `SSL_CB_READ' undeclared (first use in this function)
SSLeay.xs:75: error: `ret' undeclared (first use in this function)
SSLeay.xs:78: error: `SSL_CB_EXIT' undeclared (first use in this function)
SSLeay.c: In function `XS_Crypt__SSLeay__CTX_new':
SSLeay.c:146: error: `SSL_CTX' undeclared (first use in this function)
SSLeay.c: In function `XS_Crypt__SSLeay__CTX_use_pkcs12_file':
SSLeay.c:334: error: `SSL_CTX' undeclared (first use in this function)
SSLeay.c:334: error: `ctx' undeclared (first use in this function)
SSLeay.xs:188: error: `EVP_PKEY' undeclared (first use in this function)
SSLeay.xs:188: error: `pkey' undeclared (first use in this function)
SSLeay.c:421: error: `ctx' undeclared (first use in this function)
SSLeay.c:646: error: `ssl' undeclared (first use in this function)
SSLeay.c:658: error: syntax error before ')' token

LOTS OF LINES SIMILAR TO ABOVE

SSLeay.xs:505: error: invalid type argument of `->'
dmake.EXE:  Error code 129, while making 'SSLeay.o'
NANIS/Crypt-SSLeay-0.64.tar.gz
C:\strawberry\c\bin\dmake.EXE -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Failed during this command:
NANIS/Crypt-SSLeay-0.64.tar.gz               : make NO

回答1:


I had the same problem and, although I had the openSSL package installed, the development headers where not. I had to install the package libssl-dev. I used the Ubuntu Software Center to download and install the package. Alternately, you could use sudo apt-get install libssl-dev from the terminal command line.

That fixed my problem but is no real help to you working with windows. openSSL has a link to a binary for windows at: OpenSSL for Windows




回答2:


The following lines suggest that you probably have not installed the OpenSSL library/headers or it is in a location not known to perl. Install it with the package manager of your operating system, or compile and install it.

>SSLeay.xs:35:25: openssl/ssl.h: No such file or directory
>SSLeay.xs:36:28: openssl/crypto.h: No such file or directory
>SSLeay.xs:37:25: openssl/err.h: No such file or directory
>SSLeay.xs:38:26: openssl/rand.h: No such file or directory
>SSLeay.xs:39:28: openssl/pkcs12.h: No such file or directory

After installing the library/headers, cpan should be able to make and install Net::SSL.




回答3:


Generally CPAN takes care of this for you by installing all the dependent modules. The problem you are facing is with this warning

WARNING: BUILD_REQUIRES is not a known parameter.

Now since CPAN is unable to read this parameter it is unable to get all the dependent modules for you and hence is unable to install.

The Problem may be with the perl-ExtUtils-MakeMaker module with comes with cpan utility.

You may want to install the latest version of cpan and try. Or as previously mentioned You may want to install all the modules after downloading them individually and then installing them manually.




回答4:


First, I have got the problem like this:

mod_qos.c:83:26: error: openssl/rand.h: No such file or directory
mod_qos.c:84:25: error: openssl/evp.h:  No such file or directory

Then I used the following:

apxs -I/usr/local/openssl/include/openssl -i -c mod_qos.c -lcrypto -lpcre

and it succeeded! Why?



来源:https://stackoverflow.com/questions/11967961/compiling-netssl-for-strawberry-perl-openssl-ssl-h-no-such-file-or-director

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!