VLC windows Cygwin 编译v2.2.1

1、安装cygwin

安装cygwin ,安装过程中,需要安装需要的工具,具体如下, 


选择一种连接方式,我选择使用代理方式

连接成功后,显示如下,选择一个后缀为.cn的速度快。

安装需要工具,工具列表如下,如果编译过程中,缺少哪一个工具,在把缺少的安装一下。

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   

下载vlc 和库

vlc 源文件:vlc-2.2.1.tar.xz
  最好库和版本对应,要不会出现编译中的错误。

开始编译

解压源码

执行如下命令。

1
2
$ tar xJvf vlc-2.2.1.tar.xz
$ cd vlc-2.2.1/

准备库

执行如下命令。

1
2
$ cd contrib/
$ mkdir win32; cd win32

因为VLC官网提供的库是与VLC某版本对应的,我们需要手动将下载的库更改为最新的库,防止其到官网下载最新的库。

1
$ mv ~/vlc-contrib-i686-w64-mingw32-20150630.tar.bz2 vlc-contrib-i686-w64-mingw32-latest.tar.bz2

编译库。

1
2
$ ../bootstrap --build=i686-w64-mingw32
$ make prebuilt

做一些清理工作。

1
$ rm ../i686-w64-mingw32/bin/{luac,moc,rcc,uic}

不知道为什么(没仔细研究脚本),在执行完make prebuilt后,库路径下bin/rcc.exe被删除了,故,手动复制将其恢复。

1
2
$ cp /cygdrive/d/rcc.exe ../i686-w64-mingw32/bin
$ cd ../../ # 回到vlc源码根目录

编译源码

编译时遇到了如下错误。

1
moc.exe: error while loading shared libraries: libstdc++-6.dll: cannot open shared object file: No such file or directory

没有研究明白为什么libstdc++-6.dll找不到,手动将其添加到环境变量中。

1
$ export PATH=/usr/i686-w64-mingw32/sys-root/mingw/bin/:$PATH

再执行如下命令。

1
2
3
$ ./bootstrap
$ mkdir win32; cd win32
$ ../extras/package/win32/configure.sh --host=i686-w64-mingw32

configure完成后,大概是如下样子。

1
2
3
4
5
6
7
8
9
10
libvlc configuration
--------------------
version               : 2.2.1
system                : mingw32
architecture          : i686 mmx sse sse2
optimizations         : yes
vlc aliases           : cvlc rvlc qvlc svlc


To build vlc and its plugins, type `make', or `./compile' if you like nice colors.

根据CPU内核个数,执行make命令。

1
make -j4 # 4核CPU

之后是漫长的等待,一般不会出错。

打包

执行如下命令。

1
$ make package-win-common

执行完成后,当前目录下会生成vlc-2.2.1目录,即为绿色版VLC。

问题

运行VLC没有界面,原因是libqt4_plugin.dll需要调用libstdc++-6.dlllibgcc_s_sjlj-1.dll,libwinpthread-1.dll库,没研究明白为何编译时并没有静态加载这3个库。
解决办法为将这两个库复制到打包目录即可。

1
2
3
4
5
6
7
$ cp /usr/i686-w64-mingw32/sys-root/mingw/bin/{libstdc++-6.dll,libgcc_s_sjlj-1.dll,libwinpthread-1.dll} vlc-2.2.1/

运行测试。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值