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库基本步骤,及其避坑之法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老中医的博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值