说明:本文只是对官方文档进行简单的翻译总结,旨在帮助一些英文不太好的朋友。官方文档请见wiki.videolan.org/Win32CompileMSYSNew。

Msys是MinGW的一个辅助工具,包括一些基于GCC的编译工具链。有了它,你能够轻松的在Windows上编译VLC(实际上,交叉编译VLC将是更加容易,轻松而且便捷)。

你需要安装以下工具:7-zip,notepad++。这两个软件,你可以从官方免费下载并安装(笔者提醒,解压请使用7-zip,编译文件请使用notepad++)。

TDM/MinGW的安装

首先,从http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.2.exe/download链接下载tdm-gcc-4.5.2.exe,运行安装程序,取消“Check for updated files…”,选择Create,安装到C:\MinGW目录下(默认目录是C:\MinGW32,请修改之),其它选项则保持默认。当完成安装时,请确保C:\MinGW\bin路径已经添加到环境变量PATH中。

MinGW工具包

从以下链接http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz下载,并解压到C:\MinGW。

Msys的安装

从以下链接下载Msys安装程序http://sourceforge.net/project/downloading.php?group_id=2435&filename=MSYS-1.0.11.exe。将其安装至C:\Msys\1.0下,在随后弹出的命令窗口中,按下面的方式回答问题

Accept  Post  Install[yn ]:y(输入y,下同)

MinGW  Installed?[yn ]:y

Path  to MinGW:C:/MinGW

Msys开发工具包的安装

从以下链接下载安装程序http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe。运行安装程序,保持默认即可。

AutoTools和libcrypt的安装

从如下链接下载程序,并将它们解压到C:\Msys\1.0(笔者提醒,请右击压缩文件,选择用7-zip解压)。

http://sourceforge.net/projects/mingw/files/MSYS/autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download

http://sourceforge.net/projects/mingw/files/MSYS/automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download

http://sourceforge.net/projects/mingw/files/MSYS/libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download

http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma

http://sourceforge.net/projects/mingw/files/MSYS/perl/perl-5.8.8-1/perl-5.8.8-1-msys-1.0.17-bin.tar.lzma/download

Glib和PKG-CONFIG

同上,请下载如下文件并将它们解压到C:\Msys\1.0

注意,请下载最新版本

http://ftp.gnome.org/pub/GNOME/binaries/win32/glib

ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip

ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip

增加pkg config path 变量

打开C:\Msys\1.0\msys.bat(笔者提醒,请使用Notepat++打开),并在文件的最顶端增加set PKG_CONFIG_PATH=/win32/lib/pkgconfig。再次打开C:\Msys\1.0\bin\libtool文件(同样的,请使用Notepad++),定位到9926行,增加 /mingw/lib。追求后的文件看起来像是这样:compiler_lib_search_dirs="/usr/lib /usr/lib /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /mingw/lib"。我已经用红色字体标识出追加的内容。

LUA Tools

从以下链接下载luahttp://www.lua.org/ftp/lua-5.1.4.tar.gz。解压到C:\Msys\1.0\home\<username>(笔者提醒:<username>是你当前Windows的登录用户,默认情况下XP系统是Administrator,后续版本是你安装系统是的登录用户)。运行Msys,执行如下命令:

l  cd /home/<username>/lua-5.1.4
l  make mingw
l  cd src
l  cp *.exe *.dll /bin
l  cd ..

预编译Contribs包

从以下位置下载contrib-20111017-win32-bin-gcc-4.4.4-runtime-3.17-only.tar包,解压文件,将其中win32文件夹复制到C:\Msys\1.0目录下,复制后的文件结构看起来像这个样子(以libdvdnav.a为例)

C:\Msys\1.0\win32\bli\libdvdnav.a

下载VLC源代码,解压到C:\Msys\1.0\home\<username>目录下,重命名为vlc。对于1.1.X版本的源代码(请从附件中下载configure-msys.sh及configure-common.sh两个文件,并保存至C:\msys\1.0\home\<username>\vlc\extras\package\win32目录下)

Whoami和hostname

从以下链接下载http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/coreutils文件,请选择最新版本,下载后的文件名大概像现在这个样子(coreutils-5.97-2-msys-1.0.11-ext.tar.lzma,注意-ext后缀)。解压后,将who.exe,whoami.exe及hostname.exe复制到C:\Msys\1.0\bin目录下。

http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/libiconv处下载libintl动态链接库,文件名大概像(libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma),并解压至C:\Msys\1.0\bin目录下。

http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/gettext处下载文件名像libintl-0.17-2-msys-dll-8.tar.lzma的文件,并解压到C:\Msys\1.0\bin目录下。

创建一个新文件,包含如下代码

echo 'lovey599'

保存为whoami(注意不要任何扩展名),并复制到C:\Msys\1.0\bin目录下。

打开C:\MSys\1.0\home\<username>\vlc\configure.ac文件,搜索VLC_COMPILE_HOST并作修改,以前的是如下样子AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2> /dev/null || hostname`", [host which ran configure])

修改成AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])

编译VLC

l  启动Msys

l  cd vlc

l  cp  -v  /usr/win32/share/aclocal/*  m4/

l  cp  -v  /usr/share/aclocal/*  m4/

l  PATH=/usr/win32/bin:$PATH  ./bootstrap

l  sh  extras/package/win32/configure-msys.sh

l  PATH=/usr/win32/bin:$PATH make

l  make package-win32-base

完成后,你可以在C:\Msys\1.0\home\<username>\vlc目录下看见一个以vlc-x.x.x命名的文件夹,复制出来即可,这就是编译后的目标文件。

特别提醒,采用本文所描述的方法编译出来的VLC版本,需要附加tdm-gcc的运行库,它们分别是libgcc_s_sjlj-1.dll和libstdc++-6.dll,位于C:\MinGW\bin目录下,将其复制到vlc-x.x.x目录下即可。

Msys+MinGW编译VLC的更多相关文章

  1. 再次尝试windows下msys+MinGW编译ffmpeg

    电脑上安装太多的开源库,环境变量里面一些常用的头文件都有几种,以前使用的编译ffmpeg的方法现在常常提示错误.从config.log中看,这些错误往往都是一些头文件引用错误导致.由于项目中继续编译自 ...

  2. 使用mingw编译完整Qt5的过程(使用了niXman的msys套装)good

    使用mingw编译完整Qt5的过程 坛子里似乎已经有人编译出Qt5了,不过大多有问题,不是缺少opengl就是缺少openssl,还有缺少webkit的,本文提供的仍然不能说是绝对完整的,不过相对以前 ...

  3. MinGW 编译 libsndfile-1.0.25(只要有 MSYS,./configure make make install 就行了)

    最近做的一个项目需要读写 wav 文件.在网上找到 libsndfile 刚好满足我的需要.但是编译的时候遇到了点小麻烦,这里记录一下编译的过程,免得下次再编译时忘记了. 因为是在编译完成若干天后写的 ...

  4. Msys+Mingw在手 妙用在心!

    1 缘起 平时在一些c++群面,看见很多大学十分努力的学习c++/MFC ,看见在编程语言百花争芳的时候,C/C++还是很有很有魅力.估计很多初学者使用都是window下的visual stdio 开 ...

  5. win7下使用cygwin编译VLC

     win7下使用cygwin编译VLC http://kathy.blog.51cto.com/1168050/295460 2010-04-15 14:54:01 标签:编译 休闲 VLC 职场 w ...

  6. ubuntu下编译VLC

    ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...

  7. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  8. 利用openssl管理证书及SSL编程第3部分:将MinGW编译的openssl dll导出def和lib供MSVC使用

    将MinGW编译的openssl dll导出def和lib供MSVC使用 前面我们用mingw把openssl 编译成了动态库,得到下面2个dll文件: libeay32.dll ssleay32.d ...

  9. Windows7下使用mingw编译openssl

    Windows7下使用mingw编译openssl 首先参考这篇文章安装mingw/minsys: http://blog.csdn.net/ubuntu64fan/article/details/8 ...

随机推荐

  1. Ubuntu15.10下制作Linux 操作系统优盘启动盘

    上次电脑出现了一些问题,于是不得不重新装机了.下面就跟大家分享一下我在Ubuntu下制作优盘启动盘的一些心得. 准备原料 我这里用到的是 镜像文件是:debian-8.3.0-amd64-DVD-2. ...

  2. 最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)

    ===================================================== 最简单的基于FFmpeg的封装格式处理系列文章列表: 最简单的基于FFmpeg的封装格式处理 ...

  3. iOS开发之五:常用控件--UITextField的使用

    UITextField 是iOS开发中用的非常多的一种控件,主要是供用户输入单行信息的.下面来详细介绍UITextField. 1.常用属性 <span style="font-siz ...

  4. Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中

     package com.ucap.netcheck.dao.impl; import java.util.ArrayList;import java.util.List; import org. ...

  5. 下载android5.0源码

    方法还是与之前我介绍的下载源码的方法一样,但是repo需要更新一下,否则可能会出现以下错误: type commit tag v1.12.16 tagger Conley Owens <cco3 ...

  6. python“# -*- coding: UTF-8 -*-”

    python跑一趟红 python脚本文件中,python编译器是使用ascii码来解释脚本内容.如果.py源文件中包含中文,会报错(注释也报错).所以文件开头加上"# -*- coding ...

  7. 《java入门第一季》之面向对象(重头戏多态)

    接下来介绍java第三大特性--多态性 /* 多态:同一个对象(事物),在不同时刻体现出来的不同状态. 举例: 猫是猫,猫是动物. 水(液体,固体,气态). 多态的前提: A:要有继承关系. B:要有 ...

  8. SpriteBuilder中子节点的相对位置(%百分比定位)

    子节点(或在这里确切的为精灵sprites)50%的偏移效果使得其在父节点中居中显示,该父节点的纹理在左下角(锚点为0,0). 这样做好过用父节点的位置的实际值来定位.根据父节点实际位置来定位在早期的 ...

  9. JS跨域请求

    前提:两个项目,第一个项目想请求第二个项目不通过服务器代码只通过页面请求. 1. 第一个项目html(需要第二个项目配合实现) 1 2 3 4 5 6 7 <script> functio ...

  10. Android开发概要记录

    1..o文件. .ko和.so文件的路径 \kernel\out\mediatek---------------.o文件 .c/.cpp文件编译生成的目标文件 \out\target\product\ ...