Msys+MinGW编译VLC
说明:本文只是对官方文档进行简单的翻译总结,旨在帮助一些英文不太好的朋友。官方文档请见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解压)。
l http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma
Glib和PKG-CONFIG
同上,请下载如下文件并将它们解压到C:\Msys\1.0
注意,请下载最新版本
l http://ftp.gnome.org/pub/GNOME/binaries/win32/glib
l ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
l ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip
l 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的更多相关文章
- 再次尝试windows下msys+MinGW编译ffmpeg
电脑上安装太多的开源库,环境变量里面一些常用的头文件都有几种,以前使用的编译ffmpeg的方法现在常常提示错误.从config.log中看,这些错误往往都是一些头文件引用错误导致.由于项目中继续编译自 ...
- 使用mingw编译完整Qt5的过程(使用了niXman的msys套装)good
使用mingw编译完整Qt5的过程 坛子里似乎已经有人编译出Qt5了,不过大多有问题,不是缺少opengl就是缺少openssl,还有缺少webkit的,本文提供的仍然不能说是绝对完整的,不过相对以前 ...
- MinGW 编译 libsndfile-1.0.25(只要有 MSYS,./configure make make install 就行了)
最近做的一个项目需要读写 wav 文件.在网上找到 libsndfile 刚好满足我的需要.但是编译的时候遇到了点小麻烦,这里记录一下编译的过程,免得下次再编译时忘记了. 因为是在编译完成若干天后写的 ...
- Msys+Mingw在手 妙用在心!
1 缘起 平时在一些c++群面,看见很多大学十分努力的学习c++/MFC ,看见在编程语言百花争芳的时候,C/C++还是很有很有魅力.估计很多初学者使用都是window下的visual stdio 开 ...
- win7下使用cygwin编译VLC
win7下使用cygwin编译VLC http://kathy.blog.51cto.com/1168050/295460 2010-04-15 14:54:01 标签:编译 休闲 VLC 职场 w ...
- ubuntu下编译VLC
ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
- 利用openssl管理证书及SSL编程第3部分:将MinGW编译的openssl dll导出def和lib供MSVC使用
将MinGW编译的openssl dll导出def和lib供MSVC使用 前面我们用mingw把openssl 编译成了动态库,得到下面2个dll文件: libeay32.dll ssleay32.d ...
- Windows7下使用mingw编译openssl
Windows7下使用mingw编译openssl 首先参考这篇文章安装mingw/minsys: http://blog.csdn.net/ubuntu64fan/article/details/8 ...
随机推荐
- OpenCV3.0 3.1版本的改进
摘要 OpenCV现在更新到了3.1版本,相对OpenCV2有了很大改进,其中对于硬件加速,移动开发(IOS,android)的支持成为亮点. 新版的OpenCV采用了内 ...
- 《java入门第一季》之集合框架(Collection小儿子Set集合)
/* * Collection主要的连个儿子: * |--List * 有序(存储顺序和取出顺序一致),可重复 * |--Set * 无序(存储顺序和取出顺序不一致),唯一 * * H ...
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(四)
写到这突然有童鞋质疑,你这哪里是牛,分明是熊嘛! 仔细看了下,还真像牛.反正是这个意思.怪本猫猪牛熊不分,好在道理是一样的. 下面继续,言归正传. 添加一个空白的touchBegan方法,如果没有这个 ...
- iOS中 Swift初级入门学习(二)
// Copyright (c) 2015年 韩俊强. All rights reserved. // import Foundation /* // 控制语句 // for - in // 遍历字符 ...
- Bootstrap模板代码+页面自适应页面的案例代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Java进阶(五)Junit测试
我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的.但是,我们同时应该确保每一个函数 ...
- Dynamics CRM2013 任务列表添加自定义按钮
任务列表的command bar 上面添加自定义按钮如下 要注意的是此处的列表不是任务实体而是活动实体,如果你是在任务实体的home栏上面加那你永远看不见按钮的显示,但如果是要在任务的表单界面上加按钮 ...
- android自定义listview实现header悬浮框效果
之前在使用iOS时,看到过一种分组的View,每一组都有一个Header,在上下滑动的时候,会有一个悬浮的Header,这种体验觉得很不错,请看下图: 上图中标红的1,2,3,4四张图中,当向上滑动时 ...
- Linux System Programming --Chapter Seven
文件和目录管理 一.文件与其元数据 我们首先看一下一个简单的文本文件是怎么保存的: 打开vim,编辑一段文本: [root@localhost ~]# vim hello.txt 编辑内容如下: op ...
- Leetcode_154_Find Minimum in Rotated Sorted Array
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43416613 Suppose a sorted array ...