分享

X264 利用MinGW 在windows 下的编译

 SamBookshelf 2013-07-22

          毕设中的一部分要用到X264编解码来控制压缩码流。看了网上好多的X264的编译方法,写的步骤很简单,不过对于习惯了windows下的IDE的我来说也看了好久才解决,并且这个过程之中还出现了好多的错误。现在做个总结,以后要是还需要正好需要查查。

          1 第一步,工欲善其事必先利其器,首先下载X264和MinGW,这两个代码都是开源的代码,可以在开源网站上直接获得。尤其说一下MinGW,网址为http://www./,一开始看了一些网友的博客,也按着其提供的链接下载了文件,可是总是出现各种各样的问题,包括msys的路径配置啊什么的,搞了好久没搞对。后来直接下载了最新的MinGW,安装在了C盘下,打开直接就能用了。在下载MinGW的时候,选择Download latest这个选项,接下来默认在C盘下,在selected comments下建议全选了,以后或许用的到。这是一个在线的安装文件,根据网速不同下载的时间也不同。

       2下载了MinGW以后,打开C:\MinGW\msys\1.0目下的msys.bat,在开头添加一句话,call 加上VC or VS安装路文件中的VCVARS32.BAT的路径。比如本人的安装在C盘下,我VC6.0和VS2008都用,我先用的是VC6.0。那么用文本形式打开MinGW,在第一行的@前面加上call C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT。事实上我觉得加不加都无所谓,当然我没试过,因为我后来遇到问题了,我以为是没加这一句话造成的,可加上后还是出现问题,后来才知道是缺少mspdb60.dll这个库。添加完成了以后,就可以运行下msys.bat这个文件了,然后键入 gcc    -v,如果出现的不是什么 no command 和 no input file什么的,而是出现了一些版本的信息,证明MinGW安装对了。事实上我一开始就是这个老搞不对,按着网上的步骤走总是不对,郁闷的要死差点把电脑砸了,后来下了最新的MinGw,直接就OK了。。。。。

      3 下载最新版本的X264,当然你想用老的那也没问题。拷贝到C:\MinGW\msys\1.0\home目录下,如果没有home自己新建一个。

      4 利用MinGW进入X264,就一个基本的命令 cd  到X264目录

         然后进行编译命令  

       ./configure --enable-shared
       make 这个时候就可以编译出来libx264-122.dll,马上就会大功告成了。
  5接下来利用一个导出工具导出静态库来。
   导出工具的名称就叫做pexports,这个工具直接去pexports的官网上下去,不要在csdn上面用别人分享的,这不是个好习惯。网站地址
   http://www./software/pexports-0.43/download_pexports.html。下载下来以后放在vc目录的Bin下。然后我用的比较笨的方法,将编译好的dll文件和下载下来的pexports都放在了VCBin文件下,然后打开这个pexport,键入命令。因为我比较笨,觉得老是找目录比较麻烦就都拷到bin里面来了,在这个过程中有可能会提示少一个mspdb60.dll的东西,那就在网上下一个,注意一些空格尤其第二句两个斜杠前
pexports libx264-112.dll > libx264-112.def 
lib /machine:ix86 /def:libx264-112.def

  6 接下来就会在Bin下生成静态库了。网友的方法测试是否成功

5 测试导出的库是否正确
拷贝新生成的库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(&param);
return 0;
}

我这个是成功了,但这是不是说明真的行我还不知道,因为毕竟还没具体的压缩呢。
这个傻瓜式文档希望对初学者有用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多