请移步https://higoge.github.io/,所有下载资料在那个博客都能找到。谢谢。 

--------------------------------------------------------------------

    如果你已经成功编译了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. [url]http://linux.rz.ruhr-uni-bochum.de/download/cygwin/release-2/w32api/w32api-3.11-1.tar.bz2[/url]

2. [url]http://downloads.videolan.org/pub/videolan/vlc/0.8.5/contrib/qt4-4.4.1-win32-bin.tar.bz2[/url]

    运行解压命令解压这两个包。

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. [url]http://wiki.videolan.org/Win32CompileCygwinNew[/url]

2. [url]http://forum.videolan.org/viewtopic.php?f=14&t=50360&p=164758&hilit=win32api#p164219[/url]