在接unity 的facebook sdk时遇到了openssl的安装问题,花了一天半找各种解决方法,安装各种东西.那么我们就来看看如何避开坑的方法吧!
你需要下载以下东西:
1.Activeperl(5.24.1) 网址:https://www.activestate.com/activeperl/downloads
2.下载nasm汇编器(nasm-2.13rc18-win64) 网址:http://www.nasm.us/
3.下载OpenSSL的 离线包(openssl-1.0.1e或者openssl-1.0.2g) 网址https://www.openssl.org/
至于为啥需要这些呢,我这边就不深究了(小菜鸡不能误导人),其他大神的博客里面都会讲到的,你们就去好好研究下吧
有些人提到安装openssl的0.98版本比较省事,但是...我百度了一下,还是建议大家用修复了血崩bug的1.01或者1.02的版本
nasm汇编器直接点开安装就行
AvtivePerl也是直接安装就行
避免不必要的坑出现 建议都安装在c盘目录下(我装的是C:\Program Files)
我用的是openssl-1.0.2g,这里有个天坑请大家注意了!
我的电脑是win10 x64,但是网上安装openssl的环境大多都是x32,我这里开始配置32的环境
我的vs是2014升级的2015 不过版本根本就不影响openssl的安装
当然你也可以装64位的也没什么差别,只有命令的不同 传送门 64位的命令请戳!!!
我的电脑->右键属性->高级系统设置->环境变量
选择1: ...\Microsoft Visual Studio 14.0\Common7\Tools\Shortcuts目录下选中VS2013 x64 本机工具命令提示,右键以管理员身份运行
选择2: 直接运行cmd (以管理员身份)
有些老哥说直接用vs自带的命令行工具不会出现任何错误.但是我不知道为啥并没有看到Shortcuts目录下的那个工具
话不多说开始安装吧!
运行命令行工具:
1.输入 cd C:\Program Files (x86)\openssl-1.0.2g (你的安装openssl目录)
2.输入 perl Configure VC-WIN32 no-asm (no-asm是因为在加载perl的时候nasm很容易出幺蛾子,别问我为什么知道!)
3. 输入 ms\do_nasm
4.打开vs安装目录下vc找到bin目录下的vcvars32.bat.
输入 cd D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
再输入 vcvars32.bat 配置编译环境。(这是关键步骤一定不要以为看起来没什么效果就省略!!!)
5. 输入 nmake -f ms/ntdll.mak
6.输入 nmake -f ms\ntdll.mak test
7.输入 nmake -f ms\ntdll.mak install
if (如果以上所有步骤没有看到error字眼并且在C:\Program Files (x86)\openssl-1.0.2g\out32dll 就是这个out32dll文件下看到一大堆东西){
那就证明你的openssl安装完成啦!
}
else{
出现以下几种情况:
1. ml64错误 "ml64不是内部命令之类的...": 证明你在第一步配32位环境的时候没有好好配,给自己一巴掌!赶紧滚去配置你的环境
2. "windows.h" 找不到该文件或者文档 错误:可能有两个原因, 一: 你的vs没有安装Windows sdks ,不支持VC++.可以通过安装vs的文件把vc++的那几个选项都勾上,耐心等待安装,装完再重复以上的所有步骤 二:你的openssl没有放在C:\Program Files (x86)文件夹下面导致系统找不到你的windos.h文件
3. XXX文件被引用...之类的错误:
4. 错误:
..\crypto\cversion.c(105) : error C2220: 警告被视为错误 - 没有生成“object”文件
.\crypto\cversion.c(105) : warning C4129: “o”: 不可识别的字符转义序列
NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\cl.EXE"”: 返回代码“ 0x2”
这个错误据说有个解决方法:打开ms\ntdll.mak文件,将其中的/WX去掉 (没有测过不知道好不好用)
5.'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件,
说明cmd救不了你,你凉了兄弟,使用VS自带的命令提示符试试命吧,下面贴图了(记得以管理员身份运行)
}
测试OpenSSL动态库:nmake -f ms/ntdll.mak test
测试OpenSSL静态库:nmake -f ms/nt.mak test
安装OpenSSL动态库:nmake -f ms/ntdll.mak install
安装OpenSSL静态库:nmake -f ms/nt.mak install
如果你上次没有安装好,需要清除数据后重新安装:
清除上次OpenSSL动态库编译以重新编译:nmake -f ms/ntdll.mak clean
清除上次OpenSSL静态库编译以重新编译:nmake -f ms/nt.mak clean
如果你需要生成openssl的密钥,输入下面的内容:(在代码里自动生成的密钥是不准的,原因未知)
好啦,完