二:《windows下编译最新的x264》

X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的。x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的(当然有精力可以全部改成C89),生成的.a库是也是没法调用的,如何转化成可用.lib库就比较重要了。

1下载最新的x264
http://videolan.mirror.aussiehq.net.au/x264/snapshots/解压到d盘

2下载mingw+msys进行配置,这里有已配置好的,直接下载用就可以了
http://code.google.com/p/msys-cn/wiki/ChapterInstallation

但是这个配置好的编译工具,没有包含Yasm,因此,在编译过程中会出现Found no assembler的字样

解决方法:

下载http://yasm.tortall.net/Download.html的源码,当前最新源码版本是1.2.0,下载Source .tar.gz,然后解压到D:\yasm-1.2.0

进入mingw+msys,执行msys.bat,依次执行命令

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

./configure 回车 (执行配置文件)
make 回车 (开始编译)
make install 回车 (安装)
安装后,将会在MSYS的目录下多出一个local目录,将此目录下的所有文件拷贝到MSYS的目录的mingw,我本机的目录为:G:\VC\x264 bilud\MSYS\mingw
3 编译x264 
进入当前x264所在d盘的目录,执行./configure --enable-shared,然后make,即可生成x264的dll

4 利用VC提供的工具导出lib
下载poxports
http://download.csdn.net/source/3036251解压到VC所在的安装目录,比如说
C:/Program Files(x86)/Microsoft Visual Studio 10/VC/bin,解压以后pexports.exe拷贝至bin目录下
导出lib库,win7下这个dll千万不能放上面bin的目录下,否则会出现could not load PE image
pexports d:\\libx264-120.dll > d:\\libx264-120.def 
lib /machine:x86 /def:d:\\libx264-120.def /out:d:\\libx264-120.lib

5 测试导出的库是否正确
拷贝新生成的库libx264-120.lib和libx264-120.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;
}

from:http://niulei20012001.blog.163.com/blog/static/7514721120122605835954/

//

以上两篇文章写的不错;

如果要应用的话,还是要用最新版本的,vc版本可以学习用;

关于第二篇文章,启动名字不太好,因为随着时间段推移,版本号会变,编译方法可能也会变化,所以,建议在标题中或内容中添加版本号

这里要着重说一下第二篇文章,

1,我在按照上面的方法configure的时候出现了一个问题,关于opencl的问题,版本是:x264-snapshot-20140520-2245 ;

修改上面的configure命令为:./configure --enable-share --disable-opencl 

编译通过;

2,关于lib,不需要转化工具,直接将编译后的文件,libx264.dll.a 修改为 libx264.lib即可;

出自:http://blog.csdn.net/chinabinlang/article/details/26452011

(转)windows下编译最新的x264的更多相关文章

  1. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  2. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  3. 如何在WINDOWS下编译BOOST C++库 .

    如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

  4. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

  5. Windows下编译安装 FFmpeg

    在Linux/Mac下编译 ffmpeg是非常方便的.但要在 Windows下编译 ffmpeg还真要花点时间.以下就是在 Windowns下编译ffmpeg的步骤: 一.安装Cygwin 在wind ...

  6. 一步步实现windows版ijkplayer系列文章之四——windows下编译ijkplyer版ffmpeg

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  7. windows下编译和安装boost库

    boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...

  8. 在Windows下编译Emacs

    在Windows下编译Emacs Windows下编译好的Emacs主要有两个版本,一个来自http://nqmacs.sourceforge.net/,另一个来自http://www.crasseu ...

  9. Windows下编译memcached-1.4.5(32bit和64bit)

    1.简介 Memcached 是一个高性能的分布式内存对象缓存系统.它通过将数据缓存在内存中来减少对数据库和文件系统的访问,减轻数据库及操作系统的负担,提高应用系统的速度. 目前已经很多系统应用了me ...

随机推荐

  1. sublim3常用插件安装

    1首先需要安装插件管理器Package Control,点击View > Show Console菜单,输入以下代码,按回车运行即可.说明:以下只对st3有效 import urllib.req ...

  2. python函数中参数是如何传递的?

    python中一切皆对象,函数中参数传递的是对象的引用. 1在函数中改变变量指向的对象,即指向不同对象. 当在函数中修改传递进来的变量指向另一个对象时,实参的对象不会改变. >>> ...

  3. Python中的break和continue的使用方法

    一.continue的使用方法(结束当前的循序,进行下一个数的循环) # *************************************************************** ...

  4. ev3dev:设置自动登录wifi

    ev3有时系统不能自动输入wifi密码,在ev3主机上按来按去太麻烦了.看了下官网,解决方案如下: 主要是利用工具:connmanctl,这是一个交互式工具. robot@ev3dev:~$ sudo ...

  5. 进程的处理器亲和性和 vCPU 的绑定(查看cpu信息,超线程等)

    通常情况下,在 SMP 系统中,Linux 内核的进程调度器根据自有的调度策略将系统中的一个进程调度到某个 CPU 上执行.一个进程在前一个执行时间是在 cpuM(M 为系统中的某 CPU 的 ID) ...

  6. 学习笔记之gethostbyname函数

    我们现在认知一台计算机主机通常采用直观可读的名字.例如博客园我们会记住 www.cnblogs.com 而不是记住42.121.252.58这个IP.对于大多数的应用程序来说应该是处理名字而不是处理地 ...

  7. Mogondb笔记

    创建数据库 use dbname 创建数据表(集合) db.createCollection("tablename") 给表添加记录 db.tablename.insert({na ...

  8. 李洪强iOS开发之FMDB线程安全的用法

    // //  ViewController.m //  04 - FMDB线程安全的用法 // //  Created by 李洪强 on 2017/6/6. //  Copyright © 2017 ...

  9. Freemarker-2.3.22 Demo - No01_获取模板并直接输出

    package No01_获取模板并直接输出; import java.io.File; import java.io.FileOutputStream; import java.io.OutputS ...

  10. 常用的兼容IE和火狐FF等浏览器的js方法(js中ie和火狐的一些差别)

    介绍了网页上常用的IE/火狐兼容性该页的做法,并给出了代码,相当实用了.为了方便大家阅读代码,以下以 IE 代替 Internet Explorer,以 MF/FF 代替 Mozzila Firefo ...