windows平台下vlc编译之三:vlc-0.9.4的编译

原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处  、作者信息和本声明。否则将追究法律责任。 http://jeremiah.blog.51cto.com/539865/115322
    如果你已经成功编译了vlc-0.8.6i,那么编译vlc-0.9.4就跟玩似的。
    在这简单的介绍下编译过程。如果有什么不明白的,先好好看看前两篇日志。
 
    1. 解压源码及库文件。
注意:如果你编译过vlc-0.8.6i,请先执行以下命令删除以前的库文件。
rm -rf /usr/win32
还是在Windows下直接用rar解压源文件吧,用tar xzvf来解压最后可能会出现exe的执行权限问题。
源文件:http://download.videolan.org/pub/videolan/vlc/0.9.4/vlc-0.9.4.tar.bz2,解压到X:/cygwin/home/yourname下。
第三方库:contrib-20080811-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2,解压到X:/cygwin/下。
(
在我的公共邮箱提供了下载,具体下载方式为:
1). 登录
http://mail.qq.com
2). 用户名:jeremiah_vlc
3). 密码:发邮件给我(
jeremiah.vlc@gmail.com ),我会告知。
4). 在“我的文件夹”的“Jeremiah_VLC相关资源”有所有资料的超大附件连接。
)
 
    2. 解压完库文件做一点点清理工作
rm -rf /usr/win32/bin/moc 
rm -rf /usr/win32/bin/rcc 
rm -rf /usr/win32/bin/uic
 
    3. 解压完源码做一点点修改工作
    用文本编辑器或vi打开vlc-0.9.4/configure.ac,
修改 
AM_GNU_GETTEXT_VERSION([0.17]) 
为 
AM_GNU_GETTEXT_VERSION([0.15])
或运行
sed -i 's/AM_GNU_GETTEXT_VERSION(0.17)/AM_GNU_GETTEXT_VERSION(0.15)/g' configure.ac
 
    4. 执行bootstrap,注意杀毒软件可能引起会Permission Denied。
./bootstrap
 
    5. 显示Successfully bootstrapped后就可以编辑vlc脚本了。
    这里有个问题需要详细的说明一下,vlc官方提供的第三方库qt4有问题,相关的skins2不好用。如果禁用掉qt4和skins2,最后得到的vlc没有界面,可以在命令行下面运行。保存以下脚本为configure-vlc01.sh(见附件)。(如果想解决qt4的问题,得到有界面的vlc,请直接看8
PATH=/usr/win32/bin:$PATH \ 
PKG_CONFIG_LIBDIR=/usr/win32/lib/pkgconfig \ 
CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \ 
LDFLAGS=-L/usr/win32/lib \ 
CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" \ 
./configure \ 
         --host=i686-pc-mingw32 \ 
         --disable-gtk \ 
         --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \ 
         --enable-avcodec --enable-avformat --enable-swscale \ 
         --enable-faad --enable-flac --enable-theora \ 
         --with-wx-config-path=/usr/win32/bin \ 
         --with-freetype-config-path=/usr/win32/bin \ 
         --with-fribidi-config-path=/usr/win32/bin \ 
         --enable-live555 --with-live555-tree=/usr/win32/live.com \
         --disable-qt4 --disable-skins2 \
         --enable-caca --with-caca-config-path=/usr/win32/bin \ 
         --with-xml2-config-path=/usr/win32/bin \ 
         --with-dvdnav-config-path=/usr/win32/bin \ 
         --disable-cddax --disable-vcdx --enable-goom \  
         --enable-twolame --enable-dvdread \ 
         --enable-debug    --enable-dca \ 
         --disable-mkv --disable-taglib
    运行以下命令运行脚本:
dos2unix configure-vlc01.sh 
./configure-vlc01.sh
 
    6. make
make 
[or make -j2]
    Jeremiah在make的时候没有遇到错误,如果你遇到错误,请把错误直接贴到google上搜索解决方法。
 
    7. 打包,根据自己的需求来吧。
make package-win32-base
make package-win32-zip
    关于如何制作vlc的安装文件,看上一篇日志吧。(基本上报错就是一些language的错误或者skins、npvlc.dll的错误,原则就是哪行出错了,就用;(分号)把哪行注释起来。)
 
    8. 解决下qt4的问题。
    先把以下脚本保存为configure-vlc02.vlc(见附件)。
PATH=/usr/win32/bin:$PATH \ 
PKG_CONFIG_LIBDIR=/usr/win32/lib/pkgconfig \ 
CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \ 
LDFLAGS=-L/usr/win32/lib \ 
CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" \ 
./configure \ 
         --host=i686-pc-mingw32 \ 
         --disable-gtk \ 
         --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \ 
         --enable-avcodec --enable-avformat --enable-swscale \ 
         --enable-faad --enable-flac --enable-theora \ 
         --with-wx-config-path=/usr/win32/bin \ 
         --with-freetype-config-path=/usr/win32/bin \ 
         --with-fribidi-config-path=/usr/win32/bin \ 
         --enable-live555 --with-live555-tree=/usr/win32/live.com \ 
         --enable-caca --with-caca-config-path=/usr/win32/bin \ 
         --with-xml2-config-path=/usr/win32/bin \ 
         --with-dvdnav-config-path=/usr/win32/bin \ 
         --disable-cddax --disable-vcdx --enable-goom \ 
         --enable-twolame --enable-dvdread \ 
         --enable-debug    --enable-dca \ 
         --disable-mkv --disable-taglib
    类似于5.执行脚本,可能会出现以下问题:
/usr/win32/include/qt4/QtCore/qatomic_windows.h:394: error: previous declaration 
`long int InterlockedIncrement(long int*)' here 
make[6]: *** [libqt4_plugin_la-qt4.lo] Error 1 
make[6]: Leaving directory `/cygdrive/c/vlc/modules/gui/qt4' 
make[5]: *** [all] Error 2 
make[5]: Leaving directory `/cygdrive/c/vlc/modules/gui/qt4' 
make[4]: *** [all-recursive] Error 1 
make[4]: Leaving directory `/cygdrive/c/vlc/modules/gui' 
make[3]: *** [all] Error 2 
make[3]: Leaving directory `/cygdrive/c/vlc/modules/gui' 
make[2]: *** [all-recursive] Error 1 
make[2]: Leaving directory `/cygdrive/c/vlc/modules' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/cygdrive/c/vlc' 
make: *** [all] Error 2
    需要去下载两个文件:
    运行解压命令解压这两个包。
tar xjvf w32api-3.11-1.tar.bz2 -C /
tar xjvf qt4-4.4.1-win32-bin.tar.bz2
    继续执行make,报错如下:
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/bin/ld: cannot fi 
nd -lqjpeg 
collect2: ld returned 1 exit status 
make[6]: *** [libqt4_plugin.la] Error 1 
make[6]: Leaving directory `/home/wangwei1/vlc-0.9.4/modules/gui/qt4' 
make[5]: *** [all] Error 2 
make[5]: Leaving directory `/home/wangwei1/vlc-0.9.4/modules/gui/qt4' 
make[4]: *** [all-recursive] Error 1 
make[4]: Leaving directory `/home/wangwei1/vlc-0.9.4/modules/gui' 
make[3]: *** [all] Error 2 
make[3]: Leaving directory `/home/wangwei1/vlc-0.9.4/modules/gui' 
make[2]: *** [all-recursive] Error 1 
make[2]: Leaving directory `/home/wangwei1/vlc-0.9.4/modules' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/home/wangwei1/vlc-0.9.4' 
make: *** [all] Error 2
    将刚才解压得到的qt4目录下面的lib/libqjpeg.a拷贝到/usr/win32/lib中。进入到qt4-4.4.1-win32-bin目录中执行:
cp lib/libqjpeg.a /usr/win32/lib
    再进入到vlc-0.9.4中执行make,应该就没有错误了。然后可以按照7.打包了。
 
参考网址:

本文出自 “海狗哥的流媒体空间” 博客,请务必保留此出处http://jeremiah.blog.51cto.com/539865/115322

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值