Linux下vlc编绎过程记录

这几天,刚好有时间(闲得蛋疼),于是想要去看看vlc的源码。出于本能的原因,下载了源码后,第一件想要做的事就是尝试着编绎此源码。网络上相关编绎资料也多, 但多数没法满足我的要求, 很多资料更多是作者随手记录的笔记,作者编绎的vlc版本与现在所下载的最新版本也有了一定的偏差。

编绎环境

linux版本:Fedora 9

编绎器:gcc 4.3.0

vlc源码版本:vlc-1.1.7 (已是此时的最新的版本)

qt4源码库:qt-everywhere-opensource-src-4.7.1.tar.gz

vlc 的源码在编绎中依赖的其它开源库过多, 所以首先我决定编绎出一个最小的能成功能运行的vlc实例出来。

1 编绎qt4  vlc 的ui界面依赖qt4作为界面库。

从http://qt.nokia.com/downloads/linux-x11-cpp 下载最新的qt开发包

qt-everywhere-opensource-src-4.7.1.tar.gz

解压文件后,编绎安装。

#tar zxvf qt-everywhere-opensource-src-4.7.1.tar.gz

#cd qt-everywhere-opensource-src-4.7.1

指定编绎选项

#./configure –prefix=/home/extern/install/qt4 -fast -no-largefile -no-sse3

/home/extern/install/qt4 为指定的编绎完成后的生成的qt4库,头文件 ,demo程序等安装目录。

#./gmake

#./gmake install

此时Ok后,会发现/home/extern/install/qt4目录下会生成bin lib include demos doc examples imports等目录

进入lib目录下会可能看到有pkgconfig这样的一个目录,pkgconfig目录的路径应该是home/extern/install/qt4/lib/pkgconfig

接下来编绎vlc 会使用该路径。

2

进入vlc目录

#cd vlc-1.17

建立一个脚本文件,用于配置编绎选项。

#vim build_simple_vlc.sh

此时为什么会建立一个脚本呢?主要是为了方便,每次为了修改configure配置,都得重新输入一长串命令, 这个还蛮麻烦的。有了该脚本后,以后改起配置,也省心省力多了。

view plaincopy to clipboardprint?
#!/bin/bash  
export PKG_CONFIG_PATH=”/home/extend/install/qt4/lib/pkgconfig” 
./configure –enable-run-as-root –prefix=/home/extend/install/vlc-simple –disable-avcodec –disable-postproc –disable-a52 –disable-fribidi  
#!/bin/bash
export PKG_CONFIG_PATH=”/home/extend/install/qt4/lib/pkgconfig”
./configure –enable-run-as-root –prefix=/home/extend/install/vlc-simple –disable-avcodec –disable-postproc –disable-a52 –disable-fribidi 

设置PKG_CONFIG_PATH环境变量,编译vlc时能自已寻找到qt库和头文件。其中/home/extern/install/qt4 /为编绎qt4时指定的安装目录。

export PKG_CONFIG_PATH=”/home/extern/install/qt4/lib/pkgconfig”

指定vlc 编绎后的安装目录为/home/extern/install/vlc-simple

3 执行./build_simple_vlc.sh 脚本,接下来已经漫长的等待时间。一切Ok的话, 在指定的安装目录/home/extern/vlc-simple下会看到已编译ok的vlc可执行文件和一些vlc库文件。

测试一下,我们所编绎的vlc程序(注意形在图形界面下的终端)

#cd /home/extern/install/vlc-simple/bin

#./vlc

success!可以看到vlc界面启动成功。

总结:以上编绎是vlc程序还仅仅只是能够实现音频解码,想要实现视频解码,还得编绎其它更多的依赖库文件。我的目标是学习vlc 的设计思想,编绎vlc对我来说只是学习它的方法之一,以上所编绎的vlc程序对我来说应是完全够用了。

PS:一个小技艺, 在查看configure 的配置选项,我喜欢先执行./configur

Tags: