说明:本文只是对官方文档进行简单的翻译总结,旨在帮助一些英文不太好的朋友。官方文档请见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. 精通CSS+DIV网页样式与布局--设置表单和表格

    表格和表单是网页中非常重要的两个元素,在上篇博客中,我们简单的介绍了CSS的页面背景设置,今天小编继续来介绍CSS的相关知识,在我们的CSS中如何设置表格和表单,首先,来看一张思维导图,通过图简单的预 ...

  2. 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

    : 12MHz 晶振 对应 405 ~ 532 MHz 处理速度; -- : 16K 指令缓存, 16K 数据缓存; -- : 32KB 指令缓存, 32KB 数据缓存; (3) 内存接口对比 : 提 ...

  3. 不窃取用户隐私的搜索引擎: DuckDuckGo

    不窃取用户隐私的搜索引擎: DuckDuckGo https://duckduckgo.com/ 最近goggle不给力, baidu搜出来的很多都是垃圾, bing用久了很烦. 于是用上了DuckD ...

  4. ROS_Kinetic_02 ROS Kinetic 迁移指南及中文wiki指南(Migration guide)

    ROS_Kinetic_02 ROS Kinetic 迁移指南(Migration guide) 对于ROS Kinetic Kame有些功能包已经更新改变,提供关于这些包的迁移注意或教程.主要针对于 ...

  5. mongoDB常见的查询索引(三)

    1. _id索引     _id索引是绝大多数集合默认建立的索引     对于每个插入的数据,MongoDB会自动生成一条唯一的_id字段. 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  6. python 多窗口编辑

    同时打开多个文件: 1,vim filename1 filename2 在打开的多个文件中 :next 转到下个文件中 :prev 转到上个文件中 :last/:first 分别到最后一个和第一个文件 ...

  7. [leetcode]经典算法题- String to Integer (atoi)

    题目描述: 把字符串转化为整数值 原文描述: Implement atoi to convert a string to an integer. Hint: Carefully consider al ...

  8. Dynamics CRM2011 隐藏sub-grid 新建项和添加现有项按钮

    在CRM2011中ribbon区的自定义按钮可以通过工具例如RibbonEditor或者RibbonWorkbench进行配置包括action.display等等,但是系统级别的按钮是不能进行编辑的, ...

  9. zookeeper+kafka集群安装之二

    zookeeper+kafka集群安装之二 此为上一篇文章的续篇, kafka安装需要依赖zookeeper, 本文与上一篇文章都是真正分布式安装配置, 可以直接用于生产环境. zookeeper安装 ...

  10. ITU-T Technical Paper: IP网络测量模型

    本文翻译自ITU-T的Technical Paper:<How to increase QoS/QoE of IP-based platform(s) to regionally agreed ...