因为编译live555,在win10系统下,使用VS2017编译。编译过程提示错误:
1>d:\project3\live555\livemedia\include\tlsstate.hh(31): fatal error C1083: 无法打开包括文件: “openssl/ssl.h”: No such file or directory
是因为没有OpenSSL库。
然后,就需要下载OpenSSL,然后编译。
1. 下载地址:https://www.openssl.org/source/
下载更多旧版本:https://www.openssl.org/source/old/
live555没有说,自己用的是哪个版本的OpenSSL库。把这三个都下载下来,但是都不全。解压之后,发现第一个没有opensslconf.h 文件, 第二个第三个没有ssl.h 文件。可能编译之后,就有了吧,先这样设想着。。。事实证明,用的第一个。
2. live555里面包含的时候,用的是绝对路径,也就是
3. 由于OpenSSL的配置是使用perl写的,因此需要你安装一个perl环境,才能编译OpenSSL。官方推荐的是ActivePerl。安装完先别着急,给它配置一下环境。
这个软件竟然想C盘根目录下安装!算了,忍了,用完就卸载了,谁让我不认识它呢,就先由着它吧。
这里已经为它配置了环境。
等待一会会就安装好了。
4. 用VS2017.。用x86 Native Tools Command Pro...测试好几次不能成功。最终选用cmd ,以管理员身份运行。请直接跳转至第10步。
5. 将路径切换到OpenSSL的路径下面,选择了一个E盘的根目录存储OpenSSL的待编译文件。如下: 输入:
perl Configure VC-WIN32 no-asm --prefix="c:\download\opensslh111\build_release32"
其中加粗红色部分,是保存编译文件的路径,可以自行修改。可以编译32位或64位,依照自己的需求设置即可。
设置可参考链接:https://blog.csdn.net/danscort2000/article/details/81300248
6. 按照上面的提示,执行ppm install dmake, 这需要联网执行的。执行到最后出现了这个问题,不能正确解压自己下载的文件。用其他解压软件解压这个文件,显示这个文件已经损坏了。那就跳过这一步,继续下面的。
7. 输入 nmake
不需要任何参数,因为上面的配置实际都写到makefile里了,正常情况下除了警告不会有错误,如果发生了错误,请检查你是否32位和64位环境搞混了
8. 输入 nmake test
正常情况下,所有测试通过,出现pass提示
然而在上述过程中,还出现如下问题:当然还有其他的,没有记录。不过最后还是出现all test successful ,pass了,欣慰。
skipped: rc5 is not supported by this OpenSSL build
skipped: test_rehash is not available on this platform
9. 输入 nmake install 最后出现了一点小问题,还没有找到原因。
下图是执行之后的结果,看着完美,实际上缺点 东西,不能用。
10. 换用系统的cmd,以管理员身份运行,先运行一下那个 .bat
11. 如图所示,切换到C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build, 先运行一下:vcvars32.bat
12. 切换到OpenSSL的目录下,执行:
perl Configure VC-WIN32 no-asm --prefix="c:\download\opensslh111\build_release32"
其中加粗红色部分,是保存编译文件的路径,可以自行修改。可以编译32位或64位,依照自己的需求设置即可,看第5步的链接。
13. 输入:nmake
14. 输入:nmake test
15. 输入:nmake install
然后编译OpenSSL就成功了。没有提示错误。先把这个库放进去,用一下试试。
切换到这个链接的https://blog.csdn.net/qq_34732729/article/details/104185103,第4部分第7步。