在windows下编译x264

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

对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;

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

时间: 2024-10-13 06:38:33

在windows下编译x264的相关文章

(转)windows下编译最新的x264

二:<windows下编译最新的x264> X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的.x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的(当然有精力可以全部改成C89),生成的.a库是也是没法调用的,如何转化成可用.lib库就比较重要了. 1下载最新的x264http://videolan.mirror.aussiehq.net.au/x264/snapshots/解压到d盘 2下载mingw+msys进行配置,这里有已配置好的,直接下载用就可

在Windows下编译FFmpeg详细说明

MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU For Windows.它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC产生 Windows32 程序. 开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境. 所以

Windows下编译安装 FFmpeg

在Linux/Mac下编译 ffmpeg是非常方便的.但要在 Windows下编译 ffmpeg还真要花点时间.以下就是在 Windowns下编译ffmpeg的步骤: 一.安装Cygwin 在windows下安装 ffmpeg 的最好方式就是使用Cygwin. Cygwin是什么呢?简单的说,就是在 Windows上装了一个Linux模拟器.然后你可以在这个模拟器上按照Linux的方式操作 Windows系统.因此,Windows安装了Cygwin之后,你就把它当Linux用就可以了. 既然在W

【大话QT之十五】ctkPluginFrameWork插件系统Windows下编译

使用ctkPluginFramework作为插件系统框架的确有着众多开发上的优势.最近收到一些站内信,大家都想使用ctkPluginFramework但是不知道如何编译,这篇教程就来讲一讲ctkPluginFramework插件系统在Windows下的编译过程. 准备条件: 1. 安装Git,我们通过它来下载CTK的源码. 2. 安装CMake,我们用它来生成vs下的sln解决方案文件. 相关站点: 1. CTK的官网:http://www.commontk.org/index.php/Main

WIndows下编译libexif-0.6.21,生成VS下可用的dll和lib

1.下载libexif-0.6.21.zip 下载地址是http://sourceforge.net/projects/libexif/files/libexif/0.6.21/ 2.解压libexif-0.6.21.zip 我解压到了d:\opensources\下 3.安装Mingw 下载地址是http://www.mingw.org/ 点击右上角的Download Installer 记得安装Msys 我的安装路径是:C:\MinGW 下面依次有如下文件夹: bin include lib

在Windows下编译OpenSSL(VS2005和VC6)

需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装ActivePerl//初始化的时候,需要用到perl解释器2.使用VS2005下的Visual Studio 2005 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)3.解压缩openssl的包,进入openssl的目录4.perl configure VC-WIN32尽量在这

在Windows下编译WebRTC

前言这篇文章的目的在于为你节省生命中宝贵的10小时(甚至更多),或者浪费你10分钟.作为Google更新频繁的大型跨平台基础库,WebRTC的编译一直被人称为噩梦.如果恰巧你偏要在Windows下编译WebRTC,那么你最好提前对自己的耐心和智商做充分的评估.截止目前,我尝试过中文博客社区里几乎所有的文章,可以说全部失效了.我不知道这篇文章的有效期有多久,因为webrtc.org社区的家伙们更新实在太勤奋了!环境 OS:Microsoft Windows 7 Ultimate 6.1.7601

windows下编译配置libnet-1.2-rc3

官网:http://packetfactory.openwall.net/projects/libnet/ 下载(有zip和tar.gz两个版本):https://github.com/sam-github/libnet/releases 解压之后: 编译步骤: 将libnet-libnet-1.2-rc3复制到D盘 双击libnet目录下的msvcbuild.bat文件,之后就会在src目录下生成libnet.dll和libnet.lib ---------------------------

windows下编译qt的mysql驱动

windows下编译qt的mysql驱动cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake –o Makefile INCLUDEPATH+="C:\MySQL\MySQL5.1\include" LIBS+="C:\MySQL\MySQL5.1\lib\opt\libmysql.lib" mysql.promingw32-make在C :\Qt\2010.05\qt\plugins\sqldrivers就有mysql驱动了my