X264的编译(QT版和VS)
来源:互联网 发布:淘宝刚开的店怎么推广 编辑:程序博客网 时间:2024/05/29 15:02
首先到X264官网下载源代码,网址是:http://www.videolan.org/developers/x264.html。因为X264的编译过程需要Linux环境,所以需要在windows下面装一个模拟,比较常用的是mingW+msys(个人感觉cygwin也可以,只不过可能稍微复杂一些,因为cygwin需要调用外部的编译器)。进入mingw官网http://www.mingw.org/下载mingw的在线安装包,运行之后选择basic setup,不过要勾选上mingw32-gcc-g++。点击应用改变开始安装。在安装过程当中可能会因为网速问题导致一些文件下载不下来,可以在发出警告提示的时候把这些文件名称记录下来,然后单独下载安装。
安装mingw完成之后,需要配置环境变量,环境变量用于搜索编译器。我的mingw安装路径是D:\mingw,所以我需要在环境变量里面添加D:\mingw\bin。然后进入D:\mingw\msys\1.0,把下载的源代码解压缩放到这个文件夹当中(或者它的子目录当中),然后执行msys.bat批处理文件。利用cd命令切换到X264文件夹下面(X264是你存放X264代码的目录)执行./configure --enalbe-shared --disable-asm。(因为这里没有下砸相应的yasm汇编编译器,所以后面第二条禁止asm汇编,假设需要添加汇编支持的话,需要下载yasm编译器,并且将yasm放入D:\mingw\bin文件夹当中),然后执行make就生成了相应的.dll文件和.a文件。这个时候已经生成可用于QT工程的动态链接库和相应的静态链接库。将x264.h和x264_config.h和相应的动态链接库和静态链接库文件添加到工程就可以了。但是由于.a文件后缀的静态链接库不能用于VS工程。所以我们还需要生成相应的.lib文件。这里有两个方法生成.lib文件。
第一种利用pexports生成.def文件:
首先到网上下载pexports,也可以在sourceforge网站上找到相应的后缀文件名称为.lzma的文件,将这个文件复制到D:\mingw\msys\1.0文件夹下,对这个文件进行tar命令解压:
输入tar -xvf pexports-0.44-1-mingw32-bin.tar.lzma命令
就会在当前文件夹下面生成一个bin文件,我们所需要的pexports就在这个文件夹里面。将这个文件夹拷贝到D:\program files\VS2010\VC\bin这个文件夹当中。然后启动vs2010的CMD(注意这里是启动vs2010的cmd,而不是系统的cmd,前者会设置VS2010的环境,而后者不会),
执行命令:pexports d:\\x264-shared\libx264-142.dll > d:\\x264-shared\libx264-142.def
这里实际上是利用控制台的重定义输出,将pexports的输出给重定义到文件libx264-142.def当中。
然后输入命令:lib /machine:x86 /def:d:\\x264\libx264-142.def /out:d:\\x264\libx264-142.lib
生成相应的.lib文件。到这一步就生成了可用于VS的静态库文件。
第二种利用VS自带的dumpbin生成.def文件。
直接启动vs的cmd,然后输入以下命令:dumpbin /exports d:\\x264-shared\libx264-142.dll > d:\\x264-shared\libx264-142.def
这里实际上也是利用的输出重定向,将输出给放到文件当中。其实还可以利用dumpbin的/out选项将所有的输出给写到文件当中。
这一步之后,就需要自己编辑.def文件(因为dumpbin生成了多余的信息)我们需要改变这个文件使得它和.def文件格式相符合(具体格式参考MSDN)。
- X264的编译(QT版和VS)
- X264的编译(QT版和VS)
- 编译VS的QT
- X264 的编译和移植
- X264的编译(Win7)
- mingw下vs编译的ffmpeg如何支持x264
- x264的vs工程
- x264库的编译和移植
- x264的交叉编译和移植
- x264和ac编译
- vs 运行x264和Linux下的运行
- Qt vs MFC (Qt和MFC的战争)
- Qt vs MFC (Qt和MFC的战争)
- Qt vs MFC (Qt和MFC的战争)
- Qt vs MFC (Qt和MFC的战争)
- Qt vs MFC (Qt和MFC的战争)
- Qt vs MFC (Qt和MFC的战争)
- Qt vs MFC(Qt和MFC的战争)
- 路由器接交换机再接无线路由器,应该怎么设置
- C语言结构体里的成员数组和指针
- 人间四月天
- poj3437 多叉树转为二叉树
- redis密码管理
- X264的编译(QT版和VS)
- 防止表单重复提交
- macbook air 使用记录3
- Exercise 32:循环和列表
- 第五周实验_打字成绩判断程序GUI
- java的web.xml中<url-pattern>配置
- 不用比较运算符比较两个数的大小
- 国家气象局提供的天气预报接口
- android4.0.3源码之硬件gps简单移植