最近因为各种原因,对流媒体的学习,突然中断在了编码这块。今天难得静下心来,从新拿起了代码。

对encode这边,因为之前虽然也接触了,也找了两个例子,但目前还没真正开始,所以先从编译x264这个库开始吧。

找到之前下载的x264源码库(x264-snapshot-20130922-2245),然后将源码复制到D:\msys\1.0\home\x264-20130922目录下。

接着按照网上的教程,首先运行MINGW,然后切换到X264源码路径下;

再然后输入:

$ ./configure --enable-shared

$ make

其中在make的时候,我这里出现了报错:

x264dll.c:30:13: error: conflicting types for 'DllMain'
 BOOL WINAPI DllMain( HANDLE hinstDLL, DWORD fdwReason, LPVOID lpvReserved )
             ^
In file included from c:\mingw\include\windows.h:62:0,
                 from common/win32thread.h:29,
                 from common/osdep.h:207,
                 from common/common.h:117,
                 from x264dll.c:26:
c:\mingw\include\winbase.h:1051:13: note: previous declaration of 'DllMain' was
here
 BOOL WINAPI DllMain(HINSTANCEDWORDLPVOID);
             ^
make: *** [x264dll.o] Error 1

然后我百度了下,在CSDN论坛中出现了跟我一样的问题,有人发帖描述如下:

http://bbs.csdn.net/topics/390624451?page=1

然后我根据他们的提示,修改了D:\MinGW\include\winbase.h文件;修改如下:

//BOOL WINAPI DllMain(HINSTANCE, DWORD, LPVOID);//default  modefy by lhp-20141114 for built x264

即屏蔽了这句话,然后在继续make,结果就没出现错误了,顺利成功编译。

接着我执行:

$make install

于是就会在D:\msys\1.0\local\目录下生成了3个目录,分别为:bin,include,lib,这3个目录下的文件就是刚刚执行make install以后安装的。

接着我们要由dll-》lib文件,好在VS里面调用用;

于是我接下来,运行cmd,然后在cmd里面找到VS2010安装环境下的lib.exe,由它来生成lib,生成过程如下:

d:\Program Files\Microsoft Visual Studio 10.0\VC\bin>LIB /machine:x86 /def:d:\\l
ibx264-138.def /out:d:\\libx264-138.lib
Microsoft (R) Library Manager Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.

正在创建库 d:\\libx264-138.lib 和对象 d:\\libx264-138.exp

注意:

如果在生成期间出现缺少dll,就到vs安装环境下把相应的库拷贝到lib.exe目录下,就可以了,我这里拷贝的文件为:msobj100.dll,mspdb100.dll,mspdbcore.dll,mspdbsrv.exe;

于是整个编译过程完成。。。

在windows下编译x264的更多相关文章

  1. (转)windows下编译最新的x264

    二:<windows下编译最新的x264> X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的.x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的( ...

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

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

  3. Windows下编译安装 FFmpeg

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

  4. Windows下编译vpx获得各个项目VS2010解决方案的步骤

    最近研究了一下几种常见的视频编码器:x264,x265,vpx.本文简单记录一下它们的编译方法. x264,x265,vpx这三个开源的视频编码器可以说是当今“最火”的视频编码器.x264现在占据着H ...

  5. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  6. Windows下编译objective-C

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

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

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

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

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

  9. windows下编译java源文件的编码错误

    import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...

随机推荐

  1. ORM是什么?

    对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据 ...

  2. POI导出

    public void export(){try {String columns = getPara("nameArray");List<Record> list = ...

  3. selenium+phantomJS爬虫,适用于登陆限制强,点触验证码等一些场景

    selenium是非常出名的自己主动化測试工具,多数场景是測试project师用来做自己主动化測试,可是相同selenium能够作为基本上模拟浏览器的工具,去爬取一些基于http request不能或 ...

  4. [svc] cisco router as ca server

    把cisco路由器配置成ca服务器 参考 clock set 10:00:00 Dec 23 2017 conf t crypto key generate rsa general-keys labe ...

  5. Wireshark分析网络慢

        tcp.analysis.retransmission tcp.flags.reset==1

  6. Objective-C的“多继承”——消息转发

    Objective-C的“多继承”——消息转发 当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承.多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模.但是Objecti ...

  7. Echart的基础开发模板

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. jsoup解析网页出现转义符问题

    https://www.oschina.net/question/996055_136438 *************************************** 我要解析这个网页  htt ...

  9. LeetCode: Valid Number 解题报告

    Valid NumberValidate if a given string is numeric. Some examples:"0" => true" 0.1 ...

  10. hdu2609(最小表示法)

    题意:有n个环形字符串,一个环形字符串移动会形成不能的字符串,我们把它们看作同一串字符串,求有多少个不同的字符串....... 思路:用最小表示发将一个环形串的最小字典序找出来,然后让这个环形串按照这 ...