关于编译windows下的vlc网上的教程除了翻译N年前wiki官网的那些蚂蚁文之外,可以说基本没啥参考意义和价值。因为那些都是非常老的版本,0.8.x或者1.x.x,而我这个人有喜欢新鲜事儿,所以就冲着vlc-2.0.6来了。官网最新的是2.0.7,才发布没多久,在新鲜和稳定之间还是选了2.0.6,低一个版本的来调戏调戏。



    首先说编译环境,网上很多人在windows下用MINGW+MSYS或者Cygwin,这些玩意儿其实就是对linux环境的一个模拟,而且编译效率之低下,简直让人无法忍受,所以我就直接放弃在windows下编译windows版vlc的念头了,在Fedora17下用交叉编译工具mingw32-w64来编译。如果不了解什么是mingw32,建议去google一下,这个基础的不能再基础的东西就不在这里浪费笔墨了。闲话不表,进入正题:



1、首先确认你的Fedora17系统安装了如下工具,否则就用yum一个个去安装,这是必须的步骤:

[root@localhost ~]#yum
install libtool automake autoconf binutils
gcc gcc-c++ glibc make cmake gettext
zip pkgconnfig nsis
lua-dev svn cvs git zip bzip2 zlib-devel wget xz

不用担心,这些软件版在fedora 17自带的yum源里都找得到,上面一条命令下去就完事大吉了。除非你系统里安装了其他东西和上述软件冲突,这个问题就的自己一步一步去解决了。



2、安装mingw32交叉编译工具:

[root@localhost ~]#yum install  mingw32-binutils
mingw32-gcc mingw32-gcc-c++ 

fedora 17的yum源里已经将mingw32默认全部升级成mingw32-w64了,也仅仅是从fedora17开始的,之前的版本据说执行完上述命令后实际上安装的mingw32,关于这一点还没确认,改天有空了再试一下fedora16。此时系统中会多出很多以i686-w64-mingw32-*开头的程序,如下:

3、下载vlc-2.0.6的源码:

[root@localhost ~]#wget http://download.videolan.org/pub/videolan/vlc/2.0.6/vlc-2.0.6.tar.xz 



4、解压源码到/usr/loca/src目录下。以xz结尾的文件要经过两层解压才可以得到源码,如下:

[root@localhost ~]#xz
-d vlc-2.0.6.tar.xz

[root@localhost ~]#tar
-xf vlc-2.0.6.tar -C /usr/local/src

[root@localhost ~]#cd /usr/local/src/vlc-2.0.6



5、进入到/usr/local/src/vlc-2.0.6目录之后依次执行下述操作:

[root@localhost vlc-2.0.6]#mkdir
-p contrib/win32

[root@localhost vlc-2.0.6]#cd contrib/win32

[root@localhost win32]# ../bootstrap --host=i686-w64-mingw32

[root@localhost win32]# make prebuilt

上述操作时下载交叉编译vlc时所需要的第三方依赖包。如果按照教程来做的话,上述命令执行完过后系统中会多一个目录:/usr/local/src/vlc-2.0.6/contrib/i686-w64-mingw32/



6、在步骤5的基础上继续执行:

[root@localhost win32]# make
.qt4

这样会下载qt的软件包并将其编译成库文件,然后安装到正确的位置,如果不装qt的话最后在windows下运行vlc会没有界面,播放视频时没有菜单栏,这里需要注意。

至此,编译vlc所需要的基础环境就搭建完成了。接下来就是漫长的编译过程了。



7、切换到vlc-2.0.6源码解压后的根目录里:

[root@localhost
win32]# cd /usr/local/src/vlc-2.0.6

[root@localhost vlc-2.0.6]# mkdir win32 && cd win32

[root@localhost win32]# ../bootstrap

[root@localhost
win32]#PKG_CONFIG=/usr/bin/pkg-config \

        PKG_CONFIG_PATH=/usr/local/src/vlc-2.0.6/contrib/i686-w64-mingw32/lib/pkgconfig \

        LIBRARY_PATH=/usr/local/src/vlc-2.0.6/contrib/i686-w64-mingw32/lib \

        ../extras/package/win32/configure.sh \

            --host=i686-w64-mingw32 \

            --with-contrib=/usr/local/src/vlc-2.0.6/contrib/i686-w64-mingw32 \

            --disable-dvdread \

            --disable-shout

如果不出问题的话,你将会看到如下的提示信息。如果出错的话就一点一点排查吧,不过如果是一个纯净的Fedora系统,完全按照文档来做的话是绝对不会出错的,呵呵。

8、编译并打包:

[root@localhost win32]#make

执行make时,有可能会在编译/usr/local/src/vlc-2.0.6/modules/lua目录时报错,修改办法也很简单,将/usr/local/src/vlc-2.0.6/modules/lua/Makefile里所有的-ldl项删掉,重新执行一次make命令就OK了。最后执行打包发布,以zip包的形式发布绿色纯净版:

[root@localhost
win32]#make package-win32-zip

最终zip包的路径是/usr/local/src/vlc-2.0.6/win32/vlc-2.0.6-win32.zip,拿到windows赶紧运行一下:

再和vlc官网发布的2.0.6的原版做个对比,不管是声音还是图像都很OK:

谨以此文献给那些喜欢vlc但又被她折磨的死去活来的朋友们。

PS:很多写文章的人既不实践,也不贴图,这样很容易误导大家,废了半天功夫结果最后瞎忙活,太耗费精力和青春了,所以关于技术还是那句话:实践出真知。

Fedora 17下交叉编译vlc-2.0.6-win32小记的更多相关文章

  1. Fedora 17 下安装codeblocks

    Fedora 17 下安装codeblocks:        1.直接从yum源安装:        sudo yum install codeblocks        2.源码安装        ...

  2. Fedora 17下安装Oracle 10g详细图文教程

    一.硬件要求——内存 & swap & 硬盘 最小内存与swap: 1 GB of RAM & swap 建议内存与swap: 2 GB of RAM & swap [ ...

  3. (原创)openvswitch实验连载1-fedora 17下安装openvswitch

    1 软件安装 1.1测试环境和网络拓朴 大部分朋友估计也没有一个真实环境来完全整个的测试,所以我也是使用了在一台PC机上使用Vmware Workstation的方式来进行实验.总体结构是在PC机上安 ...

  4. Fedora 17 安装 完全 指南

    一.了解Fedora 17先来了解一下Fedora吧.它是由Red Hat赞助的一个全球性开源项目,秉承“自由”.“友爱”.“杰出”.“前卫”宗旨. 1.Fedora 17的主要系统改进内核:采用3. ...

  5. 使用YUM安装MySQL 5.5(适用于CentOS6.2/5.8及Fedora 17/16平台)

    目前CentOS/Red Hat (RHEL) 6.2官方自带的mysql版本为5.1,mysql5.5已经出来了. 相比mysql5.1,mysql5.5不仅在多个方面进行了改进: 性能上有了很大提 ...

  6. ubuntu下编译VLC源码

    http://blog.csdn.net/beitiandijun/article/details/9225591ubuntu下编译VLC源码 分类: 视频处理 2013-07-02 17:33 57 ...

  7. Fedora 17 安裝完全指南

    Fedora 17 关闭U盘自动mount gsettings set org.gnome.desktop.media-handling automount "false" gse ...

  8. linux下编译gcc6.2.0

    linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...

  9. ubuntu下编译VLC

    ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...

随机推荐

  1. C#程序员整理的Unity 3D笔记(十):Unity3D的位移、旋转的3D数学模型

    遇到一个想做的功能,但是实现不了,核心原因是因为对U3D的3D数学概念没有灵活吃透.故再次系统学习之—第三次学习3D数学. 本次,希望实现的功能很简单: 如在小地图中,希望可以动态画出Player当前 ...

  2. 第一篇、HTML标签

    <!--根标签--> <html> <head> <!--设置编码方式--> <meta charset="UTF-8"> ...

  3. 02_setter注入

    工程截图如下 [HelloWorld.java] package com.HigginCui; public class HelloWorld { private String words; publ ...

  4. 转载:一句代码改变Swing难看的字体

    Swing 皮肤的一个键值:swing.boldMetal 默认为 true因此造成了默认字体极度难看: 其实一句代码就能解决问题:UIManager.put("swing.boldMeta ...

  5. 九度OJ 1446 Head of a Gang -- 并查集

    题目地址:http://ac.jobdu.com/problem.php?pid=1446 题目描述: One way that the police finds the head of a gang ...

  6. Java_log4j

      Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.事件记录器等:我们也可以控制每一条日志的输出格式: ...

  7. TreeMap 红黑树实现

    TreeMap 是一个有序的key-value集合,它是通过 红黑树 实现的. TreeMap 继承于AbstractMap,所以它是一个Map,即一个key-value集合. TreeMap 实现了 ...

  8. Less使用——让老司机带你飞

    为什么我要使用Less less的作为编写css的工具插件,省时.方便.检测,具体的安装,请参考我的一篇文章<sublime text3 个人使用心得>,里面我讲解了安装方法,使用webs ...

  9. C# Form窗体子窗口关闭时刷新父窗体中的datagridview

    解决该问题可以用委托,但是还有更简单方便的两种方法: 方法一:将主窗体实例保存到子窗体 show  form2的时候设置一下 owner为form1 Form2 f2 = new Form2(); / ...

  10. 如何更改Chrome默认的搜索引擎

    1 打开Chrome浏览器之后,点击窗口右上角的图标,在弹出的菜单中点击设置,如图所示: 2  在打开的窗口中,点击管理搜索引擎,如下图所示: 3 在弹出的窗口中,找到百度的搜索引擎或者bing的搜索 ...