您的位置:首页 > 其它

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

2015-04-16 21:52 351 查看
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4430494.html

如果你已经成功编译了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

需要去下载两个文件:
1. http://linux.rz.ruhr-uni-bochum.de/download/cygwin/release-2/w32api/w32api-3.11-1.tar.bz2
2. http://downloads.videolan.org/pub/videolan/vlc/0.8.5/contrib/qt4-4.4.1-win32-bin.tar.bz2
运行解压命令解压这两个包。

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.打包了。

参考网址:
1. http://wiki.videolan.org/Win32CompileCygwinNew
2. http://forum.videolan.org/viewtopic.php?f=14&t=50360&p=164758&hilit=win32api#p164219

本文出自 “海狗哥的流媒体空间” 博客,请务必保留此出处/article/4430494.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: