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
        就此搞定!


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