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 前一个版本;


0 0
原创粉丝点击