编译ZLMediaKit(win10+msvc2019_x64)

前言

因工作需要,需要ZLMediaKit,为方便抓包分析,最好在windows系统上测试,但使用自己编译的第三方库一直出问题,无法编译通过。本文档记录下win10上的编译过程,供有需要的小伙伴使用

一、需要安装的软件

1.git

下载地址:Git - Downloading Package

这个网上资料很多,就不解释了

2.cmake

Download CMake

这个网上资料也很多,同样不解释了

3.vs2019

这个不解析了

二、下载配置 vcpkg

1.下载vcpkg,下载路径假设为: C:\work\develop, 执行

bash 复制代码
git clone https://github.com/microsoft/vcpkg

2.下载预编译的 vcpkg 包管理工具

bash 复制代码
.\vcpkg\bootstrap-vcpkg.bat -disableMetrics

3.编译openssl

bash 复制代码
.\vcpkg\vcpkg.exe install --triplet=x64-windows-static openssl

4.编译libsrtp,需要启用openssl,需要找到vcpkg_configure_cmake文件,

具体文件地址为C:\work\develop\vcpkg\ports\libsrtp\portfile.cmake

其中C:\work\develop\为vcpkg的目录地址

添加代码,-DENABLE_OPENSSL:BOOL=ON,以上是笔者的文件

然后进行编译:

bash 复制代码
.\vcpkg\vcpkg.exe install --triplet=x64-windows-static libsrtp

编译完成后,就可以在C:\work\develop\vcpkg\installed\x64-windows-static目录下找到已经编译完成的库

其中C:\work\develop\为vcpkg的目录地址

注:对应命令可能需要执行多次,此过程可能比较长

三、获取ZLMediaKit源码

使用 Git 克隆 ZLMediaKit 的代码并初始化子模块

bash 复制代码
# 国内用户推荐从 Gitee 下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
# 初始化子模块 (必须执行)
git submodule update --init

注:不能通过下载 zip 包的方式下载源码。因为 ZLMediaKit 依赖于第三方代码并通过 Git 子模块的方式管理。

四、编译ZLMediaKit源码

使用也很简单,可以直接引用生成的静态库,也可以直接导入编译链文件

以上两种方法,笔者都编译成功了,以下介绍下后者的使用方法

导入编译链文件,可以直接使用命令行,参考如下

bash 复制代码
mkdir build
cd build
$VCPKG_CMAKE = 'C:\work\develop\vcpkg\scripts\buildsystems\vcpkg.cmake'
$VCPKG_INSTALL_PATH = 'C:\work\develop\vcpkg\installed\x64-windows-static'

$CMAKE_OPTIONS = @(
    "-GCodeBlocks - Ninja"
    "-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo"
    "-DCMAKE_C_COMPILER:STRING=cl.exe"
    "-DCMAKE_CXX_COMPILER:STRING=cl.exe"
    "-DCMAKE_TOOLCHAIN_FILE:FILEPATH=$VCPKG_CMAKE"
    "-DCMAKE_PREFIX_PATH:FILEPATH=$VCPKG_INSTALL_PATH"
    "-DVCPKG_TARGET_TRIPLET:STRING=x86-windows-static"
    "-DENABLE_WEBRTC:BOOL=ON"
)
cmake .. @CMAKE_OPTIONS
cmake --build . --target all

但笔者使用的图形界面操作的

打开cmake-gui

选择正确的源码目录和编译目录,然后点击Configure

在弹出的对话框中,选择指定编译链文件,如下是笔者的选择

在vcpkg目录中,找到对应的vcpkg.cmake文件,以下是笔者的目录

过会就可以自己修改下,感兴的选项了,如

生成的库文件,输出目录

其中如下选项需要修改下

1.VCPKG_TARGET_TRIPLET,需要修改为x64-windows-static(与vcpkg的实际目录对应)

2.编译 64 位程序在链接 openssl 时还需要链接 Crypt32.libws2_32.lib,

直接添加在链接库后面就可以,以下是笔者添加的

Configure完成后,点击Generate,完成后,会在编译输出目录生成vs项目文件

可以双击这个文件或点击CMake-gui中的Open Project,直接打开VS2019

接下来,切换成Release、编译、安装

若一切正常,就可以得到所需的文件了

已经编译好的文件下载(Release模式)

后记

因为众所周知的缘故,建议使用vcpkg下载时,使用科学的上网方式,否则可能无法正常下载

因时间所限,未对之前,无法直接使用自己编译的第三方库,若有已经找出原因的小伙伴,希望能留言说明下

相关推荐
、、、、南山小雨、、、、1 个月前
ZLMediaKit编译运行
zlmediakit
Daniel大人3 个月前
ZLMediaKit编译webrtc
webrtc·zlmediakit
HSJ01705 个月前
SRS、ZLMediakit音视频流媒体服务器
音视频·srs·zlmediakit
aqi006 个月前
FFmpeg开发笔记(二十七)APP无法访问ZLMediaKit的HLS直播地址
ffmpeg·音视频·直播·zlmediakit·hls
bacawa1 年前
ZLMediaKit 编译以及测试(Centos 7.9 环境)
centos·zlmediakit·流媒体服务器
q3173791841 年前
基于龙蜥(AnolisOS7.9)编译ZLMediaKit
龙蜥·zlmediakit·anolisos7.9
Eraser的橡皮擦1 年前
zlmediakit实现rtsp流服务器
linux·服务器·流媒体·zlmediakit·rtsp
三希1 年前
银河麒麟x86版、银河麒麟arm版操作系统编译zlmediakit
zlmediakit·银河麒麟x86
三希1 年前
windows编译zlmediakit
zlmediakit