您的位置:首页 > 其它

X264 利用MinGW 在windows 下的编译

2012-07-15 22:04 246 查看


X264 利用MinGW 在windows 下的编译

2012-03-22 22:04 138人阅读 评论(0) 收藏 举报

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

1 第一步,工欲善其事必先利其器,首先下载X264和MinGW,这两个代码都是开源的代码,可以在开源网站上直接获得。尤其说一下MinGW,网址为http://www.mingw.org/,一开始看了一些网友的博客,也按着其提供的链接下载了文件,可是总是出现各种各样的问题,包括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.emmestech.com/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(¶m);
return 0;
}

我这个是成功了,但这是不是说明真的行我还不知道,因为毕竟还没具体的压缩呢。
这个傻瓜式文档希望对初学者有用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: