win上编译openssl并配置ffmpeg

1 前言

    前两天在win上编译了ffmpeg,引入了外部库libx264/libfdk-aac,今日测试https协议时发现不奏效,所以需要引入openssl库,然后重新编译ffmpeg。

    在win上编译openssl库遇到不少问题,折腾老半天才编译通过,因而此处记录下。

    本文所使用的openssl版本是 1.1.1i. 编译环境:win11 + vs2019 + msys2.

2 准备工作

3 编译openssl

    以管理员身份打开x64 Native Tools Command Prompt for VS 2019,如果编译x86下的openssl库,请打开x86 Native Tools Command Prompt for VS 2019,并进入到openssl的代码根目录:

     执行命令 perl Configure VC-WIN64A --prefix=install_path --openssldir=yyy,配置成功后,再执行nmake编译,出现以下编译错误

    改执行如下命令 perl Configure VC-WIN64A no-asm --prefix=xxx --openssldir=yyy ,再执行nmake命令,可成功编译完成。

     这里是完整的配置、编译、测试和安装命令:

# 配置openssl
perl Configure VC-WIN64A no-asm --prefix=xxx --openssldir=yyy

#编译openssl
nmake
nmake test 
#只安装openssl的bin/include/lib文件
nmake install_sw
#除了bin/include/lib文件以外,还会安装40M左右的html文档
#nmake install

    然后在以下命令行窗口执行命令:openssl version,可以看到openssl安装成功:

     值得一提的是,如果不用--prefix指定安装目录,缺省会安装在以下目录:

缺省安装路径
CPU架构缺省安装路径
x64C:\Program Files\OpenSSL
x86C:\Program Files (x86)\OpenSSL

4 配置ffmpeg

    在编译完成openssl库之后,并配置完成pkgconfig,接下来就是引入到ffmpeg库了,即通过--enable openssl 配置ffmpeg。

    这里记录配置ffmpeg时踩过的坑。

 注意

1)用msys2工具编译安装ffmpeg前,需自己组织openssl的依赖目录,并在pkgconfig目录下组织openssl.pc文件,请参考 win上编译ffmpeg 此处大致如下:

62646@xxx MSYS /usr/local/openssl
# pwd
/usr/local/openssl

62646@xxx MSYS /usr/local/openssl
# tree -L 2
.
├── bin
│   ├── c_rehash.pl
│   ├── libcrypto-1_1-x64.dll
│   ├── libcrypto-1_1-x64.pdb
│   ├── libssl-1_1-x64.dll
│   ├── libssl-1_1-x64.pdb
│   ├── openssl.exe
│   └── openssl.pdb
├── include
│   ├── crypto
│   ├── internal
│   └── openssl
└── lib
    ├── crypto.lib
    ├── engines-1_1
    ├── pkgconfig
    └── ssl.lib

     openssl的pkgconfig目录下新建openssl.pc文件,并copy如下内容:

prefix=/usr/local/openssl
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.1.1i
Requires: libssl libcrypto

    并在~/.bashrc文件下,增加如下内容:

export PKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig:$PKG_CONFIG_PATH

     在终端执行 source ~/.bashrc 生效。

2) 更改openssl库lib目录下的lib库,去掉lib库名前的lib关键字,具体如下:

     以上2点特别注意,不然加上--enable-openssl配置ffmpeg时,配置ffmpeg时会报错:openssl not found

    这里是遇到的配置错误:

    配置成功,External libraries:此处(也即绿色部分)会增加openssl一项:

   以上就是win上编译openssl库基本步骤,及其避坑之法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Win64静态编译过的OpenSSL 1.0.2是针对Windows 64位操作系统进行的编译,并且以静态链接库的方式提供给用户使用的版本。 OpenSSL是一个开源的软件库,提供了一系列的加密和网络通信功能。通过编译OpenSSL,可以使其在Windows 64位操作系统上运行,并将其作为静态链接库进行使用。 静态编译的意思是将OpenSSL中的函数和代码编译进最终的应用程序中,而不是在运行时候动态链接。这样做的好处是在使用时不再需要依赖外部的动态链接库文件,而是直接在应用程序中调用OpenSSL的相关函数。这样可以更方便地进行应用程序的开发、部署和发布,减少了外部依赖的麻烦。 OpenSSL 1.0.2是一个较旧的版本,但是仍然被一些程序和系统所使用。通过静态编译,用户可以在Windows 64位操作系统上使用OpenSSL 1.0.2,而不必担心与其他版本或平台的兼容性问题。 通过使用Win64静态编译过的OpenSSL 1.0.2,用户可以在开发和部署应用程序时,使用OpenSSL提供的加密和网络通信功能,保障数据的安全传输和处理。静态编译的方式使得使用OpenSSL更加方便,避免了外部依赖的问题。同时,该版本适用于Windows 64位操作系统,满足了这一平台的需求。 总之,Win64静态编译过的OpenSSL 1.0.2是一个针对Windows 64位操作系统进行的编译,并以静态链接库的形式提供给用户使用的版本,可以方便地在开发、部署和发布应用程序时使用OpenSSL的加密和网络通信功能,保障数据的安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值