OpenSSL编译记录

编译环境:VS2012+OpenSSL 1.0.2n

首先需要安装Perl,并下载源码,然后开始编译。

(1) 打开对应的32位或者64位VS命令行(推荐用管理员打开,也许不需要)进入OPENSSL目录

(2) 配置编译文件

perl Configure debug-VC-WIN32 no-asm --prefix="d\OpenSSL"

其中:
debug-VC-WIN32 表示windows 32位系统,64位系统请换成 debug-VC-WIN64A
Relase版本去掉debug,改为VC-WIN32或者VC-WIN64A
no-asm 表示不用汇编,不设置此属性会导致编译不过
prefix 表示需要安装的目录

(3) 生成编译文件

对于32位:

ms\do_ms.bat

对于64位:

ms\do_win64a.bat

执行完之后,在ms目录下会生成 nt.mak 和 ntdll.mak 两个编译配置文件,nt.mak 用于生成静态lib库,ntdll.mak 用于生成动态dll库

(4) 编译

动态库:

nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install

静态库:

nmake -f ms\nt.mak
nmake -f ms\nt.mak install

(5) 关于编译问题的说明

  1. 在以上步骤中,我通过设置no-asm跳过了汇编过程,并使用do_ms而不是do_nasm。这种做法是避免了由于openssl版本过高引起的一些问题,主要表现为使用nasm编译会报告Fatal error,错误在ml或者nmake.exe等。
  2. 若出现如下错误:
    .\ssl\bad_dtls_test.c : error C2220: 警告被视为错误 - 没有生成“object”文件
    .\ssl\bad_dtls_test.c : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止 数据丢失
    NMAKE : fatal error U1077: ““H:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cl.EXE””: 返回代码“0x2”
    则需打开ntdll.mak或者nt.mak,在20行调整CFLAG参数,降低警告级别。将W3改为W0可以解决。
  3. 遇到error LNK2001: 无法解析的外部符号 _OPENSSL_ia32cap_P
    等无法解析的外部符号,多由于前次的编译失败、临时文件未清理导致,所以需要养成makefile之前先clean的好习惯。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 编译 OpenSSL 过程: 1. 下载 OpenSSL 的源代码包,解压缩到某个目录下。 2. 执行 ./config 命令进行配置,可以指定一些选项,例如编译平台、安装位置等。如果没有特别需求,可以直接执行 ./config 默认选择。 3. 执行 make 命令进行编译,这个过程可能会比较漫长,需要耐心等待。 4. 编译完成后,执行 make install 命令进行安装,这会把编译好的库文件和头文件安装到指定的位置。 5. 验证安装是否成功,可以执行 openssl version 命令,如果能够输出版本号,则表示安装成功。 需要注意的是,在编译 OpenSSL 的过程中,可能会涉及到一些依赖库的安装,例如 zlib、libssl 等,需要提前安装好。同时,为了保证安全性,建议在编译 OpenSSL 的时候开启 FIPS 模式,这样可以增强加密算法的安全性。 ### 回答2: 编译SRS(Simple-RTMP-Server)是一个功能强大的开源媒体服务器,用于流媒体的处理和分发。下面是编译SRS时编译OpenSSL的过程记录。 首先,确保已经安装了必要的软件和依赖项。使用`apt-get`或`yum`安装以下软件包: ``` sudo apt-get install build-essential sudo apt-get install libssl-dev ``` 接下来,下载OpenSSL源代码并解压: ``` wget https://www.openssl.org/source/openssl-1.1.1.tar.gz tar -xzvf openssl-1.1.1.tar.gz cd openssl-1.1.1 ``` 进入OpenSSL源代码目录后,首先运行配置命令: ``` ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared ``` 这里的`prefix`参数指定了OpenSSL的安装路径,`openssldir`参数指定了配置文件的位置。`shared`选项用于编译共享库。 运行配置命令后,运行以下命令进行编译: ``` make sudo make install ``` 这将开始编译OpenSSL并将其安装到指定的安装路径。 编译完成后,可以通过运行以下命令检查OpenSSL的安装情况: ``` /usr/local/openssl/bin/openssl version -a ``` 这将显示已安装的OpenSSL版本和其他详细信息。 最后,在编译SRS时,使用`--with-ssl`选项指定编译使用的OpenSSL库的位置。示例命令如下: ``` ./configure --with-ssl=/usr/local/openssl make sudo make install ``` 这样,就完成了在编译SRS时编译OpenSSL的过程。通过这个过程,可以确保SRS在运行时能够正确地使用和依赖于OpenSSL库。 ### 回答3: 编译SRS (Simple RTMP Server) 是一种Linux操作系统的编译过程,而编译OpenSSL是其中的一部分。 首先,我们需要从官方网站上下载SRS的源代码。然后,解压缩下载的文件,并进入解压后的目录。 在编译之前,我们需要确保Linux系统已经安装了GCC、make、autoconf、g++以及其他必要的依赖库。这些依赖项可以通过包管理器进行安装。 接下来,我们需要在终端中运行"./configure"命令,该命令将检查系统环境并生成编译配置文件。 一旦配置完成,我们可以运行"make"命令来进行编译。这个过程可能需要一些时间,具体取决于系统配置和源代码的大小。 一旦编译完成,我们可以运行"SRS"命令来启动服务器。在启动服务器之前,我们可以根据需要编辑配置文件,以便自定义服务器的行为。 当涉及到编译OpenSSL时,我们需要在SRS的源代码目录下进一步操作。 首先,我们需要下载OpenSSL的源代码。然后,解压缩下载的文件,并进入解压后的目录。 在终端中运行"./config"命令来为OpenSSL生成编译配置文件。我们可以通过添加参数来自定义配置选项,以满足特定需求。 接下来,我们可以运行"make"命令来进行编译。这个过程可能需要一定的时间,具体取决于系统配置和源代码的大小。 一旦编译完成,我们可以运行"make install"命令来安装编译后的OpenSSL库文件。 现在,我们可以回到SRS的源代码目录,然后重新运行"./configure"命令,确保编译过程能够正确地找到OpenSSL库。 最后,我们可以运行"make"命令来重新编译SRS,以确保它能够正确地链接和使用OpenSSL库。 通过以上过程,我们就成功完成了SRS和OpenSSL编译过程。这将使我们能够在Linux系统上使用SRS服务器,并为其配置和定制安全性选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ch_ty

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值