我正在使用VC++ 2008中的Axis2C和OpenSSL来访问https with服务。每当发生实际的通信时,我都会得到一个运行时致命异常:
OPENSSL_UPLINK:没有OPENSSL_APPLINK。
我读到有几件事你应该做,比如在applink.c文件中链接到我的应用程序。我这样做了(使用外部"C"),并且我还调用了CRYPTO_malloc_init。他们两个都是无效的。我有点迷路了。
我还应该检查什么?另外,有人知道为什么axis2c有时写入axis.log文件,有时不写入吗?
谢谢!
罗伊。
发布于 2013-03-13 05:56:54
我也遇到过类似的问题,使用OpenSSL 1.0.1e (从http://slproweb.com/products/Win32OpenSSL.html为Win32预编译)。
我不确定根本原因是什么,但当我使用VC的静态库而不是DLL库重新构建我的应用程序时,这个问题就消失了。
换句话说,这个库对我来说失败了:
C:\OpenSSL-Win32\lib\libeay32.lib但再次链接此库成功
C:\OpenSSL-Win32\lib\VC\static\libeay32MD.lib这可能与与其他库(请参阅http://forums.epo.org/installation-and-maintenance/topic1373.html)不兼容有关。据我所知,我的应用程序只使用了libeay32库。
此外,它还与PEM处理有关。我能够生成RSA密钥,但当我链接到DLL而不是静态链接时,我无法编写它。
发布于 2011-02-16 16:28:44
这可能是由于编译标志造成的。以下是如何在Windows64位上编译Axis2c + OpenSSL的说明。
使用OpenSSL创建64位Axis2c
版本:
前提条件:
Perl应在%PATH%系统环境变量中
OpenSSL
配置并编译OpenSSL:
cd <openssl_root_dir> (e.g. C:\tmp\openssl-1.0.0b)
perl Configure VC-WIN64A
ms\do_win64a
nmake -f ms\ntdll.mak
cd out32dll
..\ms\test为了防止在Axis2c生成文件中进行其他更改,请将文件复制到以下目录结构:
<openssl_root_dir>/bin (libeay32.dll, ssleay32.dll)
<openssl_root_dir>/lib libeay32.lib, ssleay32.lib)
<openssl_root_dir>/include/openssl (all *.h, *.c files)Axis2c
配置Axis2C
在\build\win32\configure.in中更改以下设置:
ENABLE_SSL = 1 OPENSSL_BIN_DIR =
<openssl_root_dir> (e.g.
C:\tmp\openssl-1.0.0b) CRUNTIME = /MD
EMBED_MANIFEST = 1更改\build\Win32\makefile中的以下设置:
LDFLAGS = $(LDFLAGS) /LIBPATH:$(OPENSSL_BIN_DIR)\lib
LIBS = $(LIBS) libeay32.lib ssleay32.lib编译Axis2C cd \build\win32 nmake install
所有必需文件都位于文件夹:\build\deploy
可以手动将两个deploy dll文件(libeay32.dll、ssleay32.dll)复制到OpenSSL \lib子文件夹中。
发布于 2014-03-16 19:02:11
根据openssl faq的说法
根据0.9.8版本的
,.DLLs消除了上述限制。使用某些特定的运行时选项编译的OpenSSL .DLLs,我们坚持默认的/MD可以部署到使用不同选项甚至不同编译器编译的应用程序中。但是有一个问题!您不必像以前的版本那样重新编译OpenSSL工具包,而是必须使用您选择的编译器和/或选项来编译小的C代码片段。代码片段安装为/include/openssl/applink.c,应该添加到您的应用程序项目中,或者只需在一个应用程序源文件中使用#include-d即可。如果未能将此填充模块链接到应用程序中,则会显示为致命的"no OPENSSL_Applink“运行时错误。一个明确的提醒是,在这种情况下,混合编译器选项,在第一次调用OpenSSL之前添加CRYPTO_malloc_init同样重要。
因此,只需在您的项目中包含applink.c即可&享受吧!
https://stackoverflow.com/questions/4438450
复制相似问题