win7+MinGW+x264
一、为啥使用MinGW,而不是cygwin:
MinGW有专门的W32api头文件,来把代码中Linux方式的系统调用替换为对应的Windows方式。而Cygwin则通过cygwin1.dll这个文件来实现这种API的转换,并模拟一个Linux系统调用接口给程序,程序依然以Linux的方式调用系统API,只不过这个API在cygwin1.dll上,cygwin1.dll再调用Windows对应的实现,来把结果返回给程序。Cygwin生成的程序依然有fork()这样的Linux系统调用,但目标库是cygwin1。而MinGW生成的程序,则全部使用从KERNEL32导出的标准Windows系统API。 看来用Mingw编译的程序性能会高一点,而且也不用带着那个接近两兆的cygwin1.dll文件。
以上说法参考:http://www.cnblogs.com/fancybit/archive/2012/07/08/2581590.html
二、如何使用MinGW生成libx264.lib:
具体做法先看看这篇文章 http://www.cppblog.com/tx7do/archive/2013/01/11/197199.html
主要过程:
1、msys下, 进入x264所在文件夹
2、配置configure:比如 ./configure --disable-cli --enable-shared --extra-ldflags=-Wl,--output-def=libx264.def --enable-debug --disable-asm --enable-win32thread
4、更改libx264-xxx.lib为libx264.lib
5、dos下,LIB /DEF:libx264.def
一些补充:
1、LIB是在dos下使用,如果提示找不到LIB.exe,环境变量PATH添加:VS安装路径\VC\bin。
2、安装完MinGW后记得添加环境变量:MinGW\bin
4.25补充
如果想编译asm版的libx264,只需添加以下步骤
在http://yasm.tortall.net/Download.html上下载yasm的exe文件(需要根据自己的操作系统选择是Win32.exe还Win64.exe),下载完后重命名为yasm.exe,放到MinGW安装目录的bin目录下