有时间写个笔记,记录下vs2008编译最新版x264(2011),毕竟最新版x264在vc上的编译现在看来还是很难的,网上能编译出来的估计也没多少人,需要自己建工程一个一个把文件添加进去,主要是有c99语法,还要熟悉linux等。
X264更新的比较快,每天都有更新,特别是在2011年后,基本结构与之前的还是有比较大的变化,主要是在输入和输出这块。x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的(当然有精力可以全部改成C89),生成的.a库是也是没法调用的,如何转化成可用.lib库就比较重要了。
1 下载mingw+msys进行配置,这里有已配置好的,直接下载用就可以了
2 下载最新的x264
http://videolan.mirror.aussiehq.net.au/x264/snapshots/解压到MSYS目录下home文件下
3 编译x264
进入当前x264所在目录
编译 x264
./configure --enable-shared
make
可以看到会生成libx264-112.dll
4 利用VC提供的工具导出lib
下载poxports
http://download.youkuaiyun.com/source/3036251解压到VC所在的安装目录,比如说
C:/Program Files/Microsoft Visual Studio 8/VC/bin,解压以后pexports.exe拷贝至bin目录下
导出lib库
pexports libx264-112.dll > libx264-112.def
lib /machine:ix86 /def:libx264-112.def
lib /machine:ix86 /def:libx264-112.def
拷贝新生成的库libx264-112.lib和libx264-112.dll到新建的win32 工程下
拷贝原x264目录下的x264.h与x264_config.h至所建的win32工程下
下载pthreadGC2.dll和stdint.h
用如下程序测试
#include <iostream>
#include <string>
#include "stdint.h"
extern "C"
{
#include "x264.h"
#include "x264_config.h"
};
using namespace std;
int main()
{
x264_param_t param;
x264_param_default(¶m);
return 0;
}
上面只是生成了lib,最重要的部分还是在vs下面添加文件继续编译,排错,主要是config.h的修改。