windows平臺下vlc編譯之三:vlc-0.9.4的編譯

請移步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]

相關文章
相關標籤/搜索