x264是linux下的库,但在windows下使用,必须编译成dll库,在这里记录一下windows编译x264过程。
一、编译环境安装
1…下载MinGW ,下载地址。 下载完成获得mingw-get-setup.exe,选择安装路径,继续。之后会获得MinGW Installer,选"Basic Setup",将右侧的选项全部选中,点击菜单上的“Installation”下的“Apply Changes”开始安装。等待安装完成,这个过程需要的时间可能会比较长。 下载yasm,下载地址 注意选择版本,下载后将文件名称改成yasm.exe,放在之前安装好的MinGW\bin目录下下。
2. 下载msys64并安装, 安装默认路径(C:\msys64);
3. 安装完成之后,先把安装目录下的msys2_shell.cmd中注释掉的rem set MSYS2_PATH_TYPE=inherit改成set MSYS2_PATH_TYPE=inherit,这是为了将vs的环境继承给MSYS2
4. 重命名link.exe
重命名msys64/usr/bin/link.exe 为msys64/usr/bin/link.bak, 避免和MSVC 的link.exe抵触。
二、修改pacman的源
pacman是一个软件包管理器,用来在MSYS2中安装软件,但是默认的国外的源下载安装包时非常缓慢,大概只有十几二十KB的速度,而且还容易下载中断出错,所以需要修改为国内源,国内源可以选择中科大的源。
按照MSYS2镜像提示修改。具体如下:
编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686
编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加:
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64
编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加:
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch
然后在msys2的shell中执行:
pacman -Sy
三、安装gcc编译器、git等
如果选择MinGW-w64编译则打开MSYS2 MinGW64,在shell窗口中输入:
pacman -S mingw-w64-x86_64-toolchain
然后默认全部安装即可。
安装git:任一方式打开shell窗口输入:
pacman -S git
安装nasm
编译当前最新x264时需要用到nasm。
pacman -S nasm
四、 编译x264
1.打开[适用于 VS 2015 的 x64 本机工具命令提示]关联的mingw64
2.检查编译环境工具
mingw64的shell窗口输入:
which cl link yasm cpp
看返回结果,没有no的结果一般就没问题。
3.修改支持中文显示
窗口右键->Options->Text,然后locale选择:zh_CN,Character set 选择 UTF-8。
4.下载x264
git clone http://git.videolan.org/git/x264.git
5.编译
cd 进入x264目录下:
./configure --host=x86_64-w64-mingw32 --enable-shared --extra-ldflags=-Wl,--output-def=libx264.def
make
make install
.生成libx264.lib
上面编译出来的结果没有包含lib文件,需要自己手工生成。
configure时我们生成了libx264.def此时就派上用场。
cp ./libx264.def ../build/lib/
cd ../build/lib
#生成64位lib文件则输入如下命令:
lib /machine:X64 /def:libx264.def
即得到libx264.lib,然后将libx264-16x.dll改名或者复制一份为libx264.dll。