二:《windows下编译最新的x264》
X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的。x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的(当然有精力可以全部改成C89),生成的.a库是也是没法调用的,如何转化成可用.lib库就比较重要了。
1下载最新的x264
http://videolan.mirror.aussiehq.net.au/x264/snapshots/解压到d盘
2下载mingw+msys进行配置,这里有已配置好的,直接下载用就可以了
http://code.google.com/p/msys-cn/wiki/ChapterInstallation
但是这个配置好的编译工具,没有包含Yasm,因此,在编译过程中会出现Found no assembler的字样
解决方法:
下载http://yasm.tortall.net/Download.html的源码,当前最新源码版本是1.2.0,下载Source .tar.gz,然后解压到D:yasm-1.2.0
进入mingw+msys,执行msys.bat,依次执行命令
cd /d/yasm-1.2.0 (进入目录)
./configure 回车 (执行配置文件)
make 回车 (开始编译)
make install 回车 (安装)
安装后,将会在MSYS的目录下多出一个local目录,将此目录下的所有文件拷贝到MSYS的目录的mingw,我本机的目录为:G:VCx264 biludMSYSmingw
3 编译x264
进入当前x264所在d盘的目录,执行./configure --enable-shared,然后make,即可生成x264的dll
4 利用VC提供的工具导出lib
下载poxports
http://download.csdn.net/source/3036251解压到VC所在的安装目录,比如说
C:/Program Files(x86)/Microsoft Visual Studio 10/VC/bin,解压以后pexports.exe拷贝至bin目录下
导出lib库,win7下这个dll千万不能放上面bin的目录下,否则会出现could not load PE image
pexports d:\libx264-120.dll > d:\libx264-120.def
lib /machine:x86 /def:d:\libx264-120.def /out:d:\libx264-120.lib
5 测试导出的库是否正确
拷贝新生成的库libx264-120.lib和libx264-120.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;
}
from:http://niulei20012001.blog.163.com/blog/static/7514721120122605835954/
//
以上两篇文章写的不错;
如果要应用的话,还是要用最新版本的,vc版本可以学习用;
关于第二篇文章,启动名字不太好,因为随着时间段推移,版本号会变,编译方法可能也会变化,所以,建议在标题中或内容中添加版本号;
这里要着重说一下第二篇文章,
1,我在按照上面的方法configure的时候出现了一个问题,关于opencl的问题,版本是:x264-snapshot-20140520-2245 ;
修改上面的configure命令为:./configure --enable-share --disable-opencl
编译通过;
2,关于lib,不需要转化工具,直接将编译后的文件,libx264.dll.a 修改为 libx264.lib即可;
出自:http://blog.csdn.net/chinabinlang/article/details/26452011