我正在尝试使用Visual Studio 2012 express和ActivePerl在Windows 7(32位)上编译OpenSSL 0.9.8zg。当我尝试编译时没有任何选项:
DLL将编译,我可以将它与我的项目一起使用。但是,如果我尝试使用no-ssl2或no-ssl3或两者编译OpenSSL,则在make期间失败。我的实际配置行如下所示:
Perl配置no-ssl2 no-ssl3 VC-WIN32 --prefix = c:\ openssl-0.9.8zg-bin \
我收到的错误消息是:
link /nologo /subsystem:console /opt:ref /dll /out:out32dll\ssleay32.dll
/def:ms/SSLEAY32.def @C:\Users\jtromble\AppData\Local\Temp\nm2586.tmp
SSLEAY32.def : error LNK2001: unresolved external symbol SSLv23_client_method
SSLEAY32.def : error LNK2001: unresolved external symbol SSLv23_method
SSLEAY32.def : error LNK2001: unresolved external symbol SSLv23_server_method
SSLEAY32.def : error LNK2001: unresolved external symbol SSLv2_client_method
SSLEAY32.def : error LNK2001: unresolved external symbol SSLv2_method
SSLEAY32.def : error LNK2001: unresolved external symbol SSLv2_server_method
SSLEAY32.def : error LNK2001: unresolved external symbol SSLv3_client_method
SSLEAY32.def : error LNK2001: unresolved external symbol SSLv3_method
SSLEAY32.def : error LNK2001: unresolved external symbol SSLv3_server_method
out32dll\ssleay32.lib : fatal error LNK1120: 9 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 11.0\VC\BIN\link.EXE"' : return code '0x460'
我真的不明白为什么如果我在构建选项中调用no-ssl2 no-ssl3,它会尝试链接目标文件。从makefile的外观来看,它指定了选项:
CC= cl
CFLAG= -DOPENSSL_THREADS -DDSO_WIN32
DEPFLAG= -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_CMS - DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3
PEX_LIBS=
EX_LIBS=
EXE_EXT=
ARFLAGS=
AR= ar $(ARFLAGS) r
ARD=ar $(ARFLAGS) d
RANLIB= true
PERL= perl
TAR= tar
TARFLAGS= --no-recursion --record-size=10240
我希望任何人都可以提供任何帮助/指导。