請移步https://higoge.github.io/,全部下載資料在那個博客都能找到。謝謝。 php
--------------------------------------------------------------------linux
若是你已經成功編譯了vlc-0.8.6i,那麼編譯vlc-0.9.4就跟玩似的。
git
在這簡單的介紹下編譯過程。若是有什麼不明白的,先好好看看前兩篇日誌。github
1. 解壓源碼及庫文件。bootstrap
注意:若是你編譯過vlc-0.8.6i,請先執行如下命令刪除之前的庫文件。windows
rm -rf /usr/win32api
仍是在Windows下直接用rar解壓源文件吧,用tar xzvf來解壓最後可能會出現exe的執行權限問題。app
源文件: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/下。ide
(
在個人公共郵箱提供了下載,具體下載方式爲:
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]