VLC-1.1.5 window下編譯全過程

根據海狗哥的文檔與視頻編譯完成vlc1.1.5.

下面是整理的編譯過程:

1. Cygwin的安裝
     使用Cygwin-new(20081208)版。
        安裝過程中選擇包爲
Archive         
                unzip    
                zip    
Devel         
                autoconf    
                automake     
                binutils    
                cvs    
                gcc    
                gcc-core    
                gcc-g++    
                gcc-mingw    
                gcc-mingw-core    
                gcc-mingw-g++    
                gdb    
                gettext    
                gettext-devel 
                git    
                libiconv 
                libgcrypt-devel 
                libtool    
                make    
                mingw-runtime 
                nasm 
                patchutils 
                pkg-config    
                subversion    
Editor         
                vim    
Libs         
                expat 
                libgcrypt 
Web         
                curl 
                wget
 2. 源碼及庫

  VLC下載目錄(源碼和安裝包):http://download.videolan.org/pub/videolan/vlc/

源碼:http://download.videolan.org/pub/videolan/vlc/1.1.5/vlc-1.1.5.tar.bz2

庫:http://download.videolan.org/pub/videolan/contrib/win32/contrib-20100616-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2

 LUA:http://www.lua.org/ftp/lua-5.1.4.tar.gz


3.編譯

1) 首先解壓LUA到/home/yourname下面。修改src/Makefile,將CC = gcc改成CC = gcc -mno-cygwin,然後執行
make ansi
make install
    完成後執行luac,如果出現以下文字則表示安裝成功。
d:/cygwin_new/usr/local/bin/luac.exe: no input files given 
usage: d:/cygwin_new/usr/local/bin/luac.exe [options] [filenames]. 
Available options are: 
    -                process stdin 
    -l             list 
    -o name    output to file 'name' (default is "luac.out") 
    -p             parse only 
    -s             strip debug information 
    -v             show version information 
    --             stop handling options
2)解壓VLC1.1.5源碼到~(/home/yourname)下,解壓庫到/下;刪除/usr/win32/bin下面的moc,rcc,uic這三個文件,注意,保留moc.exe,rcc.exe,uic.exe。
3)bootstrap
        cd到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,應該一切正常了。


4)configure腳本如下:

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

保存以下腳本爲myBuild.sh

5)執行./myBuild.sh
 成功後會顯示
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'.
6)修改工作
   修改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'"
7)make
        執行
make
        應該不會報錯,成功後,執行
make package-win32-base
        就此搞定!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章