VS2013编译64位OpenSSL(附32位)
安装ActivePerl
这个没什么好说的,直接运行msi即可。
编译OpenSSL
1.使用Visual Studio Tool中的“VS2013 x64 本机工具命令提示”来打开控制台;也可以打开一个控制台,然后进到“安装路径\Microsoft Visual Studio 12.0\VC\bin\amd64\“中运行vcvars64.bat;
2.解压下载下来的openssl的压缩包,进入解压文件夹,输入命令:perl Configure VC-WIN64A;
3.输入命令ms\do_win64a;
4.输入命令nmake -f ms\nt.mak开始编译,如需要dll则命令为nmake -f ms\ntdll.mak(如果前面没有配置好发现使用了32bit的nmake,可使用绝对路径使用“安装路径\Microsoft Visual Studio 12.0\VC\bin\amd64\nmake.exe”);
5.如编译成功,可使用nmake -f ms\nt.mak test来测试。
PS:如果需要编译32bit的,第一步使用x86的控制台,二三步中改为VC-WIN32和ms\do_ms。
配置VS
1.项目->属性->配置属性->VC++ 目录->包含目录,将openssl文件夹的inc32添加进去;项目->属性->配置属性->VC++目录->库目录,添加openssl文件夹下的out32dll;
2.项目->属性->配置属性->链接器->输入->附加依赖项,增加libeay32.lib和ssleay32.lib;
3.将out32dll中的libeay32.dll和ssleay32.dll拷贝至工程目录下。
编译当中遇到的错误和解决办法
OpenSSL编译的时候提示少了strings.h头文件
修改这个文件
crypto/o_str.c
#if !defined(OPENSSL_IMPLEMENTS_strncasecmp) && \
!defined(OPENSSL_SYSNAME_WIN32) && \
!defined(NETWARE_CLIB)
# include <strings.h>
#endif
这个编译开关定义了就可以了
定义的方法在nt.mak 这个文件中的CFLAG 将-DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN
这两个宏加进去
还有一个重复定义的问题,这样也可以一并解决
链接错误
相关文章
- 编译一个应用程序(APK)
- Compile pciutils (lspci, setpci) in Windows x86,在 Windows x86 平台下编译 pciutils (lspci, setpci)
- vim编译执行正在编辑的文件
- Java 编译期与运行期,别傻傻分不清楚!
- ant编译时依赖的jar包
- inux下查看.so和可执行文件是否debug编译的方法
- Linux下Boost交叉编译
- 全网最新最简单的 OpenJDK13 代码编译
- Android编译32或64位程序
- PHP编译参数configure配置详解(持续更新中)
- GCC编译和使用总结
- 【嵌入式】交叉编译环境排错记
- VS 2008的64位编译环境的安装和使用
- CMake之交叉编译
- Cmake 编译静库 动态库 指定输出路径
- Ubuntu 12.04 64-bit下安装android 2.3.x编译环境指南2
- Ubuntu10.10(64位)编译Android2.3源码问题解决
- freerdp的android客户端afreerdp的编译过程
- windows下rabbitmq-c编译(带openssl、无需MinGW)
- buntu12.10 64位 + android-ndk-r9 编译ffmpeg遇到的问题
- 【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( Application.mk | APP_ABI := armeabi-v7a arm64-v8a x86 x86_64 )