Windows下编译VLC2.2.1
来源:互联网 发布:预告片 知乎 编辑:程序博客网 时间:2024/06/05 17:15
----CygWin环境
引言:
编译VLC是件很头疼的事,运气好,一两个小时就搞定,运气不好,像我倒腾了两周才搞定。网上各种查,都没解决,他们虽然编译过了,可给的步骤却缺胳膊少腿的。最后没办法只能求助官网,可官网,如果不仔细再仔细,恐怕也是编不过。官网wiki:https://wiki.videolan.org/Win32Compile/。在编译前还是先看看。尤其这个网页,要仔细看。
看”Complier and binary toolchain”这部分。注意有 mingw-w64 和 mingw32。这两个要分清楚。后者是2.0.x以前版本的编译环境。前者是2.0.之后版本的环境。所以安错的版本,你就会很郁闷的,会遇到很多错误。
试试这两个快速源吧!
1. 在下载列表里选择:http://www.cygwin.cn ,如果没有,直接在URL里输入http://www.cygwin.cn/pub/
2. 在URL里输入:http://mirrors.163.com/cygwin/,点击Add按钮,然后选中 http://mirrors.163.com/cygwin 进行安装
准备工作
CygWin
1 下载cygwin , URL: https://www.cygwin.com/
2 安装 Cygwin
3 安装相关的packages 。VLC需要用到的有以下:
Archive
unzip
zip
Devel
autoconf
automake
binutils //这个编译不过换成mingw64-i686-binutils
cvs
gcc-core
gcc-g++
mingw64-i686-gcc-g++
mingw64-i686-gcc-core
mingw64-i686-runtime
mingw64-i686-pkg-config
gdb //调试用
gettext
gettext-devel
git
libgcrypt-devel
libiconv
libtool
make
nasm
patchutils
subversion
Editor
vim
Libs
expat
libgcrypt
Web
curl (optional: for building extras/contrib)
wget (optional: for building extras/contrib)
Utils
ncurses
如果环境编译过程中出现问题,把上面相关的包换成mingw64-i686开头的。基本就OK了。
注意:在编译2.0之后用的是。mingw64-i686相关的包。
下载VLC源码
可以用Git
git clone git://git.videolan.org/vlc.git 这个版本可能编译不过,你可以git前一个版本
也可以在官网上直接下。
把源文件放到cygwin\home\{youname}\下
下载vlc-contrib-i686-w64-mingw32-latest.tar.bz2
ftp://ftp.videolan.org/pub/videolan/contrib/i686-w64-mingw32/
这个可以不用下载。在编译配置时自动下载,但网络等各种原因,还是先下下来,避免后面出现未知的问题。
把源文件放到cygwin\home\{youname}\下
编译
1打开cygwin 输入如下命令:
$ ls
结果应该至少有:
vlc-2.2.1_src.tar.xz vlc-contrib-i686-w64-mingw32-latest.tar.bz2rcc.exe
三个文件。其中rcc.exe是从vlc-contrib-i686-w64-mingw32-latest.tar.bz2提取出来的,因为不知出于什么考虑,在执行过程中rcc.exe被删掉了。放在这里为以后恢复用。
2 进入vlc2.2.1\contrib 如下命令:
$cd vlc2.2.1\contrib
$mkdir win32 && cd win32
$ mv ~/vlc-contrib-i686-w64-mingw32-latest.tar.bz2 vlc-contrib-i686-w64-mingw32-latest.tar.bz2
这里把vlc-contrib-i686-w64-mingw32-latest.tar.bz2 拷贝到了contrib\win32下面,防止脚本自动去更新到最新库。
3 编译
$ ../bootstrap --build=i686-w64-mingw32
$ make prebuilt
这地方要看你环境配置的怎样。
会出现:
tar: i686-w64-mingw32/include/openjpeg.h:无法创建到 “openjpeg-1.5/openjpeg.h” 的符号连接: No such file or directory
错误,这个错误可以不用关心。后面没什么大的影响。至于上面是否顺利不顺利过,这时就体现人品了。
4 清理工作
$ rm ../i686-w64-mingw32/bin/{luac,moc,rcc,uic}
5 恢复rcc.exe
$ cp /cygdrive/d/rcc.exe ../i686-w64-mingw32/bin
$ cd ../../ # 回到vlc源码根目录
由于RCC.exe在执行make prebuilt后被删掉,这个文件可以vlc-contrib-i686-w64-mingw32-latest.tar.bz2这里面找到。故手动恢复一下
6 编译源码
$ ./bootstrap
7配置:
$ mkdir win32 && cd win32
$ ../extras/package/win32/configure.sh --host=i686-w64-mingw32 --disable-nls
注:1 如果想禁掉某个功能,可以修改extras/package/win32/configure.sh配置文件,也可以在该命令后添加。
2 修改完configure.sh后,必须执行
dos2unix.exe ../extras/package/win32/configure.sh
否则,你编不过哟。
3 --host=i686-w64-mingw32 这个参数必须制定,否则,你可以试试,O(∩_∩)O哈哈~
8配置完成后:会出现:
libvlc configuration--------------------version : 2.2.1system : mingw32architecture : i686 mmx sse sse2optimizations : yesvlc aliases : cvlc rvlc qvlc svlcTo build vlc and its plugins, type `make', or `./compile' if you like nice colors.
说明你离成功一大半了。
9 MAKE 吧
根据CPU内核个数,执行make
命令。
make -j4
如果失败了,可以修改配置文件不编译某些插件。
10 打包
make package-win-common
make package-win32-zip
注:以上方法本人编译过了,但并不能确保你编过,基本是这几步,如果编译不过好好看看wiki。目前git的最新版本时编译不过的。
你可以git 前一个版本;
- Windows下编译VLC2.2.1
- Windows下编译VLC2.2.1 ---CygWin环境
- Windows 下编译VLC2.2.1 -Mys2+MinGW
- windows平台下VLC2.0.5编译
- windows平台下VLC2.0.5编译
- windows平台下VLC2.0.5编译
- Ubuntu下编译VLC2.0.1
- 最新版本VLC2.2.1编译
- VS2015编译VLC2.2.1(under WIN7-64)
- Ubuntu14.04 32 编译VLC2.2.1 错误
- VLC2.2.1 在vs2013中编译
- xp下使用mingw,msys编译vlc2.0.8,2.0.9,2.1.0
- 在ubuntu13.10下交叉编译VLC2.1.0 win32版
- vlc2.2.4在64位ubuntu下的交叉编译
- 编译VLC2.0.7
- Ubuntu14.04.02(32位)交叉编译vlc2.2.1
- ubuntu12.4交叉编译vlc2.2.1的经历
- Ubuntu14.04.02(32位)交叉编译vlc2.2.1
- 第12期 【听见梦想的声音】 12月刊
- Leetcode263. Ugly Number
- linux man 手册各个章节的意义和用法 .
- mysql的write skew问题
- 对PAR DAR SAR的理解
- Windows下编译VLC2.2.1
- Makefile中的 = ?= := +=直接的区别
- html头部文件-head解析
- 3章 上机习题
- java中Map,List与Set的区别
- Java集合系列之ArrayList
- 欢迎使用CSDN-markdown编辑器
- Ubuntu 更改文件夹权限及chmod详细用法
- 第4章 处理用户输入与显示数据------------(getopt命令)