Windows编译x264

1、下载安装MSYS2
官网下载64位的安装包,下载完之后进行安装,安装目录自行决定,我这里安装在C盘,我的安装目录是C:\msys64
2、编辑msys2_shell.cmd
安装完之后找到msys2_shell.cmd脚本文件,将rem set MSYS2_PATH_TYPE=inherit 改为
set MSYS2_PATH_TYPE=inherit ,修改的目的是为了MSYS2继承vs的环境.
3、下载yasm
官网下载yasm,我的电脑是64位,所以下载的是64位的

在这里插入图片描述
将下载好的yasm重命名为yasm.exe,并复制到C:\msys64\usr\bin目录下。
4、运行msys2_shell.cmd脚本文件
运行以下命令:

pacman -Syu  #中间会退出一次,再次打开重新执行此命令即可
pacman -S make #安装make
pacman -S diffutils
pacman -S nasm
mv /usr/bin/link.exe /usr/bin/link.exe.bak #重命名link.exe,目的是避免与MSVC的link.exe冲突

5、安装GCC和make
打开mingw64.exe,输入命令:

pacman -S mingw-w64-x86_64-toolchain

此时环境配置基本完成

6、编译
打开vs的 x64 Native Tools Command Prompt for VS2019(适用于 VS 2017 的 x64 本机工具命令提示),在窗口中输入cd C:\msys64,然后输入命令

msys2_shell.cmd -mingw64

打开msys的shell命令窗口。从vs的shell打开msys2 shell是为了继承vs的环境路径。
在这里插入图片描述
7、检验编译环境工具
在打开的msys2的shell窗口输入命令

which cl link yasm cpp

看命令返回结果,如下图,若出现/usr/bin/yasm、/mingw64/bin/cpp就说明环境没问题
在这里插入图片描述
8、cd到x264目录,执行命令

./../../x264/configure --prefix=./../../installed --host=x86_64-w64-mingw32 --enable-shared --disable-thread --disable-avs --extra-ldflags=-Wl,--output-def=libx264.def

configure和prefix路径根据自己的路径来写
9、接着执行命令

make
make install

成功之后会生成以下文件libx264.a、libx264.def、libx264.dll.a、libx264-155.dll和x264.exe
在这里插入图片描述
10、生成lib文件
执行命令,生成64位lib文件

lib /machine:X64 /def:libx264.def

成功之后即可得到libx264.lib和libx264.exp文件
若出现以下错误,则打开vs2019自带工具x64_x86 Cross Tools Command prompt for VS 2019,cd到.dll所在目录,执行上述命令生成lib库
在这里插入图片描述
在这里插入图片描述

我编译公司线上使用的x264源码时遇到了multiple definition多重定义的error,参考下面的文章解决了error
多重定义的解决方案

编译遇到的另一个error:conflicting types for,原因是因为函数使用的位置位于声明之前,将函数定义在被调用之前即可。参考文章: https://blog.youkuaiyun.com/biubiuibiu/article/details/78326358

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值