searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

如何在windows平台利用MSVC编译x86和arm64的gstreamer1.22

2023-08-10 08:00:18
157
0

gstreamer有两种编译方式,分别是cerbero和meson,而在gstreamer某个版本之后就不再支持cerbero了。

meson


Meson是一个Python实现的开源项目,是一个快速、可扩展且用户友好的构建工具,用于构建软件项目。它提供了一种简化和自动化构建过程的方式,支持多种编程语言和平台。meson旨在简化软件项目的构建过程。它提供了许多有用的功能和灵活性,使开发人员能够更轻松地管理和构建他们的项目。

 

环境准备


gstreamer编译需要几个工具:

  1. 安装python,这里建议安装3.9版本。

  2. 安装git for windows.

  3. 安装visual studio 2019 community版本,并同时安装windows通用开发工具。

 

下载gstreamer仓库:

 

执行git clone命令下载gstreamer库,我们要编译的版本是1.22,将分支设置为1.22。

git clone

git checkout 1.22
 

打开编译环境命令行工具:

我们的编译目标平台是x86,编译器选择的是MSVC。打开VS2019自带的x86 Prompt。

这里如果不使用这个命令行工具,后续configure步骤会出现找不到ml.exe

 

切换到gstreamer仓库,进行configure

cd d:/gstreamer

meson setup --vsenv builddir --prefix=D:/gstreamer/builddir/lib

值得注意的是,你需要替换以上命令行的路径。--vsenv是为了指定MSVC编译器,--prefix是为了安装的时候把库安装到lib文件夹。configure的过程中可以看到编译器,平台等信息,如果不符合则ctrl-c切断运行过程。

这里configure的过程会比较长,而且会在github和gnome下载若干个开源库,需要有比较好的网络环境。

 

开始编译


在gstreamer目录下,执行以下命令:

 
meson compile -C builddir
 

编译器大概会编译9k+目标,大概编译20分钟。这里的图是重复编译,只有5k+目标。

 

 

安装


编译完成后,运行以下命令:

 
meson install -C builddir
 

把编译好的库安装到--prefix的路径,如果没有指定--prefix则会安装到C盘根目录。

 

执行完毕后可以看到lib文件夹已经有了编译好的库。

测试(可选)


meson还提供了测试gstreamer的功能:

 

meson test -C builddir --suite gstreamer

 

meson交叉编译arm64的gstreamer


交叉编译arm64的gstreamer有很多坑。

 

工具准备


  1. 源码

建议重新克隆一份gstreamer源码,否则需要清除meson的缓存。

 
  1. 编译工具

找到visual studio installer,点击修改按钮。

点击单个组件,安装以下工具:

  1. 创建vs2019的x86_arm64 prompt

右键任意一个prompt,打开所在文件夹。

 

将x86_x64 Cross Tools Command Prompt for VS 2019快捷方式复制一份,重命名为:x86_arm64 Cross Tools Command Prompt for VS 2019. 右键新的prompt,选择属性,将最后的vcvarsx86_x64.bat修改为vcvarsx86_arm64.bat

 

打开新的prompt,切换到gstreamer目录,后续操作都在这个prompt中进行.

 

 

  1. 创建交叉编译配置文件

在gstreamer源码目录创建arm64-MSVC.txt文件,输入以下文字:

[host_machine]
system = 'windows'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'

[properties]
needs_exe_wrapper = true

[binaries]
lib       = 'lib.exe'
c         = 'cl.exe'
c_ld      = 'link.exe'
cpp       = 'cl.exe'
cpp_ld    = 'link.exe'
pkgconfig = 'false'

configure


在刚刚创建的prompt中进行configure操作:

meson setup --vsenv builddir --prefix=D:/gstreamer/builddir/build_arm64 --cross-file ./arm64-MSVC.txt

你需要将路径更改,configure会持续半小时左右,其中可能会多次弹出窗口提示某操作系统不符合meson的某个工具,直接按确定即可。

 

编译、安装与测试


后续的编译、安装和测试与上文一样。

0条评论
0 / 1000