MinGW+msys windows 下编译 x264

来源:互联网 发布:oracle 添加字段sql 编辑:程序博客网 时间:2024/06/04 23:36

1、首先下载mingw+msys进行配置,下载地址:http://sourceforge.net/projects/mingw/files/OldFiles/mingw-get-inst/,下载mingw-get-inst-20120426.exe

2、双击安装mingw-get-inst-20120426.exe

在第3步选择“Download latest repository catalogues”


选择安装路径:D:\MinGW(我选择安装到D盘)


在“Select Components”步骤中选择:


    √  C Compiler (默认且一定选择)
    √  C++ Compiler
    √  MSYS Basic System(选择此项将会安装msys,msys则不需要另外安装)
    √  MinGW Developer ToolKit
    等待安装完成。

在线安装完成。(注意:这个版本的mingw安装好之后就已经安装了msys,msys不需要重新安装)

3.安装完成后,我们就进入到安装目录下,我是在D:\MinGW安装的。

进入D:\MinGW\msys\1.0下

在msys.bat最最最开头处添加 call "D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat ”

(注意:其中“D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin”为你电脑上安装VS20xx的目录,

我这里安装的是VS2008。为了方便VS20xx调用x264动态库。可以通过配置让x264编译产生windows下的dll和lib。

)

修改保存后,双击msys.bat,然后输入gcc -v 出现版本信息说明安装成功。

(注意:我之前在C:\Windows\System32下添加了yasm.exe,但是运行编译x264命令时,提示 : yasm not found, use --disable-yasm)

(这是我在编译x264时遇见的问题)

4.最后发现需要在yasm官网上:http://yasm.tortall.net/Download.html 下载:当前最新源码版本是1.2.0,下载Source .tar.gz,

然后解压到D:\yasm-1.2.0
进入mingw,执行msys.bat,依次执行命令:

cd /d/yasm-1.2.0 (进入目录)

./configure 回车 (执行配置文件

make 回车 (开始编译

make install 回车 (安装)

安装后,将会在MSYS的目录下多出一个local目录,将此目录下的所有文件拷贝到MinGW的目录的mingw32,替换所有。

我本机的目录为:D:\MinGW\mingw32

5.下载最新的x264源码,官网下载地址:http://www.videolan.org/developers/x264.html,将下载的源码压缩包解压并存放到:

D:\MinGW\msys\1.0\home目录下,双击D:\MinGW\msys\1.0目录下的msys.bat运行。切换目录到存放x264源码的目录下。

切换方法:

cd /d

cd MinGW

cd msys

cd 1.0

cd home

cd x264

./configure --enable-shared

然后make,编译需要一段时间。

等待编译完成后,执行make install

执行结束后,即可在D:\MinGW\msys\1.0\local中的bin文件中找到生成x264.exe、x264.dll文件,在include文件中找到x264.h和x264_config.h文件。

6.利用VC提供的工具pexports导出lib

在网上下载pexports。(这个网上搜一搜就有)

解压将pexports.exe放到VS2008这个目录下:D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin

将上一步中生成的x264存放到D:\x264下(这个是我存放x264生成文件的文件夹,你可以存放到你存放的文件夹里,注意不要放在VS的bin目录下)

从开始菜单中的VS->Visual Studio Tools->VC命令提示,进入命令行。

输入:pexports d:\\x264\libx264-140.dll > d:\\x264\libx264-140.def回车

然后在输入:lib /machine:x86 /def:d:\\x264\libx264-140.def /out:d:\\x264\libx264-140.lib

这样就成功生成了libx264-140.lib文件。

7.测试导出库是否正确

新建一个win32工程。

拷贝新生成的库libx264-120.lib和libx264-120.dll、x264.h与x264_config.h到新建的win32工程下。

下载pthreadGC2.dll和stdint.h放在win32工程下。

用如下程序测试
#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(&param);
return 0;
}

(注意:我在测试时,提示丢失libgcc_s_dw2-1.dll文件。在D:\MinGW\bin下将libgcc_s_dw2-1.dll拷贝到和你的执行文件放在同目录)

测试生成执行文件同目录下文件:

x264.exe

libx264-140.dll

libgcc_s_dw2-1.dll

pthreadGC2.dll

TestX264.exe(测试生成执行文件)

0 0