windows下編譯vlc-1.1.5詳解?

Tags: 目錄, 編譯,

VLC的全名是Video Lan Client,是一個開源的、跨平臺的視頻播放器。VLC支持大量的音視頻傳輸、封裝和編碼格式。

工具/原料

Cygwin

vlc-1.1.5.tar.bz2源碼包

contrib-20100616-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2編譯庫

lua-5.1.4.tar.gz語言包

方法/步驟

創建VLC的編譯環境。VLC在Windows下有兩種編譯方式:

方式一:Msys+MinGW

方式二:Cygwin

二者大同小異,下面主要介紹Cygwin的方式編譯VLC。Cygwin是一個在Windows下面模擬Linux環境的東西。它提供了很多庫和應用程序,讓你可以像在Linux上一樣來使用Windows。到官網下載Cygwin的安裝程序setup.exe。

windows下編譯vlc-1.1.5詳解

下載完成後,點擊Cygwin的安裝程序setup.exe進行安裝。

windows下編譯vlc-1.1.5詳解

點擊【下一步】按鈕,進去如下界面,有三種安裝方式:

3.1從網絡安裝

3.2下載但不安裝

3.3從本地安裝

Cygwin安裝的時候,需要安裝一些默認的庫,同時我們編譯VLC還需要加入一些庫來支持VLC的編譯。如果你沒有下載相應的庫到本地則選擇第一種方式“Install from Internet”來安裝。如果已經把庫下載到本地,則選擇第三種方式"Install from Local Directory"來安裝。小編採用的是第三種方式安裝Cygwin。

windows下編譯vlc-1.1.5詳解

點擊【下一步】,根據窗口提示選擇安裝目錄。繼續【下一步】選擇本地庫安裝包的目錄。

windows下編譯vlc-1.1.5詳解

windows下編譯vlc-1.1.5詳解

點擊【下一步】,根據窗口提示選擇需要安裝的包。

windows下編譯vlc-1.1.5詳解

windows下編譯vlc-1.1.5詳解

選擇所有需要的安裝包後,點擊【下一步】進行安裝,並等待安裝完成。

windows下編譯vlc-1.1.5詳解

安裝結束後,選擇創建桌面圖標,並點擊【完成】按鈕。

windows下編譯vlc-1.1.5詳解

下載VLC源碼包(vlc-1.1.5.tar.bz2)、編譯庫(contrib-20100616-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2),和LUA語言包(lua-5.1.4.tar.gz)。

windows下編譯vlc-1.1.5詳解

windows下編譯vlc-1.1.5詳解

windows下編譯vlc-1.1.5詳解

下載完成編譯源碼、庫和語言包後,點擊桌面上Cygwin程序快捷鍵,打開Cygwin應用程序。

windows下編譯vlc-1.1.5詳解

打開程序之後,將vlc-1.1.5.tar.bz2和lua-5.1.4.tar.gz拷貝到Cygwin安裝目錄下的/home/yourname下面(注:yourname為你自己的用戶名,如從上面打開的Cygwin程序應用窗口可知小編的yourname為lenovo)。小編Cygwin的安裝目錄為D:\cygwin,則拷貝後如下圖。

windows下編譯vlc-1.1.5詳解

拷貝完成後,返回Cygwin程序窗口,使用Linux命令解壓lua-5.1.4.tar.gz軟件包,解壓命令如下:

$tar zxvf lua-5.1.4.tar.gz

windows下編譯vlc-1.1.5詳解

解壓lua-5.1.4.tar.gz完成後,進入lua-5.1.4目錄,在記事本中修改src/Makefile,將CC = gcc改成CC = gcc -mno-cygwin並保存。

windows下編譯vlc-1.1.5詳解

修改完成後,返回Cygwin程序窗口,進入到lua-5.1.4目錄,執行如下命令:

$make ansi

$make install

編譯並安裝LUA。

windows下編譯vlc-1.1.5詳解

在~(/home/yourname)目錄下解壓vlc-1.1.5.tar.bz2,解壓命令如下:

$tar jxvf vlc-1.1.5.tar.bz2

windows下編譯vlc-1.1.5詳解

將contrib-20100616-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2庫文件包拷貝到Cygwin程序的安裝目錄下(即與上面提到的home目錄為同級目錄), 返回Cygwin應用程序窗口,在~(/)目錄下對庫進行解壓,解壓命令如下:

$tar jxvf contrib-20100616-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2

windows下編譯vlc-1.1.5詳解

windows下編譯vlc-1.1.5詳解

刪除/usr/win32/bin下面的moc,rcc,uic這三個文件,注意,保留moc.exe,rcc.exe,uic.exe。

進入vlc-1.1.5,並執行如下命令:

$./bootstrap

編譯成功後會顯示如下內容:

Successfully bootstrapped

註釋:若出現此錯誤

在Cygwin中開發Rails,有時候需要執行SH命令,而這些命令調用DLL時經常會遇到類似的錯誤提示:

[main] ruby 4208 C:/cygwin/bin/ruby.exe: *** fatal error - unable to remap C:/cygwin/bin/cygssl-0.9.8.dll to

same address as parent(0×340000) != 0×4730000

[main] ruby 1752 fork: child 4208 - died waiting for dll loading, errno 11

具體原因不大清楚,解決方法如下:

CMD到Cygwin的bin路徑下,執行ash命令,或者直接run這個命令;

在ash提示符後面運行/bin/rebaseall,注意要輸入完整,如果只輸入rebaseall,會提示找不到這個命令,而且這個命令只能在ash下面執行,不能在Cygwin下面執行。

現在打開Cygwin,應該一切正常了。

windows下編譯vlc-1.1.5詳解

windows下編譯vlc-1.1.5詳解

windows下編譯vlc-1.1.5詳解

windows下編譯vlc-1.1.5詳解

在vlc-1.1.5目錄下,新建腳本文件myBuild.sh,添加如下內容:

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 \

--enable-nls --enable-sdl \

--enable-avcodec --enable-avformat --enable-swscale \

--enable-faad --enable-flac --enable-theora \

--enable-freetype \

--enable-fribidi \

--disable-fluidsynth \

--enable-live555 --with-live555-tree=/usr/win32/live.com \

--enable-caca \

--with-dvdnav-config-path=/usr/win32/bin \

--disable-vcdx --enable-goom \

--enable-twolame --enable-dvdread \

--enable-debug --enable-dca \

--disable-mkv --disable-taglib --disable-projectm \

--disable-zvbi --disable-schroedinger --disable-dirac \

--enable-mozilla --with-mozilla-sdk-path=/usr/win32/gecko-sdk

windows下編譯vlc-1.1.5詳解

返回Cygwin應用程序窗口,在vlc-1.1.5目錄下執行./myBuild命令。

成功後會顯示

libvlc configuration

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

version : 1.1.5

system : mingw32

architecture : i686 mmx sse sse2

build flavour : debug devel

vlc aliases : cvlc rvlc svlc qvlc

plugins/bindings : activex mozilla

You can tune the compiler flags in vlc-config.

To build vlc and its plugins, type `./compile' or `make'.

windows下編譯vlc-1.1.5詳解

windows下編譯vlc-1.1.5詳解

修改vlc-1.1.5目錄下的libtool文件,需改內容如下:

修改global_symbol_pipe=""為:

global_symbol_pipe="sed -n -e 's/^.*[]//([ABCDGIRSTW][ABCDGIRSTW]*//)[][]*//(//)//([_A-Za-z][_A-Za-z0-9]*//)/$///1//2//3 //3/p'"

windows下編譯vlc-1.1.5詳解

修改完成後,返回Cygwin應用程序窗口,在vlc-1.1.5目錄下執行如下操作:

$make

執行make應該不會報錯,成功後,繼續執行:

$make package-win32-base

至此,windows下編譯vlc-1.1.5就此搞定!

相關問題答案