做毕业设计,对x264编码器做了一些修改准备进一步开发,但在linux下开发对makefile这块一窍不通(说白了还是懒),于是准备将修改好的x264编码器换到Windows环境下来做。
接下来就是踩过的一些坑和大家分享下:
MinGW安装
这个就不多说了,网上教程大把。这里说下GNU环境的配置,我没有使用MSYS2,用的是mingw installation manager中安装的msys,里边勾选了如下选项(说实话这里我不是很懂,很多瞎点的):
安装完成后来到MinGW安装目录,会看到msys文件夹,进到如下目录并打开msys(一定要打开一次)即安装成功:
安装nasm
在网上查找的资料需要安装yasm,但根据教程安装yasm后执行configure文件报错如下:
需要根据提示安装nasm
去nasm的网站(https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/)下载nasm,我这里用的2.15.05版本,测试可用。
点进去后下载zip格式的,不要下载.exe的安装程序
下载的zip中有如下文件:
将nasm复制到MinGW\bin目录下,运行之前的msys.bat,输入nasm,出现如下信息说明安装成功:
编译X264
下载X264的源代码,默认情况下解压应该得到一个x264-master文件夹,将这个文件夹放入MinGW\msys\1.0\home[你的用户名字] 目录下,运行msys,进入x264源码所在目录,输入如下配置:
./configure --prefix=…/build --enable-shared --extra-ldflags=-Wl,–output-def=libx264.def
如果安装正常会看到这样的输出:
然后运行make,等待编译完成,完成后应该得到如下文件:
接着打开VS的命令行工具,我这里是Developer Command Prompt for VS 2019,切换目录到刚才编译结果目录下,输入LIB /DEF:libx264.def,运行得到libx264.lib
现在即得到了调用x264库所需要的四样东西:x264.c、x264_config.h、libx264.lib、libx264-161.dll
使用x264库:
新建一个VS的c++工程,在存放main.cpp的目录下新建include、lib两个文件夹,将x264.c、x264_config.h放入include,libx264.lib放入lib
VS中项目配置如下:
include目录
lib目录
添加附加依赖项:
最后,将libx264-161.dll重命名为libx264.dll,放在Debug文件夹下(与生成的exe在同一目录)
运行如下代码:
#include<iostream>
extern "C"
{
#include "x264.h"
#include "x264_config.h"
}
using namespace std;
int main(void)
{
x264_param_t p;
x264_param_default(&p);
return 0;
}
能成功编译并运行则说明x264库编译成功