编译WINCE6.0版本VLC

 

想用VLC作流媒体播放,但是没找到现成的CE下的VLC可以下载,只好自己编译了

主要参考了天将降的博客

 http://bk6.blog.163.com/blog/static/24498560201051193449196/

补充了一些我自己遇到的问题的处理

 

一、需要搭建编译环境

 

1.安装 Cygwin

下载地址:

http://www.cygwin.com/setup.exe

必选以下选项,如果有耐心也可以全装,如果有耐心的话。。

Archive
    unzip (5.52-2)
    zip (2.32-2)
Devel
    autoconf (4-1 2.13-3 2.61-1)
    automake (2-1 1.10-1 1.4p6-4 1.5-2 1.63-3 1.7.9-3 1.8.5-3 1.9.6-2)
    binutils (20080624)
    cvs (1.11.22-1)
    gcc (3.4.4-3)
    gcc-core (3.4.4-3)
    gcc-g++ (3.4.4-3)
    gcc-mingw (20040810-1)
    gcc-mingw-core (20050522-1)
    gcc-mingw-g++ (20050522-1)
    gdb (6.8-2)
    gettext (0.15-1)
    gettext-devel (0.15-1)
    git (1.6.0.2-1)
    libiconv (1.11-1)
    libgcrypt-devel (1.41-4)
    libtool (1.5.27a-1)
    make (3.81-2)
    mingw-runtime (3.15.1-1) 
    nasm (2.02-1)
    patchutils (0.2.31-2)
    pkg-config (0.23a-2)
    subversion (1.5.2-1)
Editor
    vim (7.2-3)
Libs
    expat (2.0.1-1)
    libgcrypt (1.4.1-4)
    libmpfr1

Web
    curl (optional: for building extras/contrib) (7.16.3-1)
    wget (optional: for building extras/contrib) (1.11.3-1)

 

2.安装mingw32ce

下载地址:

http://cdnetworks-kr-2.dl.sourceforge.net/project/cegcc/cegcc/0.59.1/cegcc_mingw32ce_cygwin1.7_r1375.tar.bz2

链接打不开的话去 sourceforge.net下搜索

解压命令:tar xjf cegcc_mingw32ce_cygwin1.7_r1375.tar.bz2

在windows下解压也行,但有的时候会少文件,最好用linux命令解压,解压完拷贝到/opt (默认解压在当前目录,这个包是个压缩包,没有路径)。

 

3 安装第三方库。

下载地址:

http://download.videolan.org/pub/testing/contrib/contrib-20091114-wince-bin-gcc-4.1.0-runtime-3.15.2-only.tar.bz2

解压命令:tar xjvf contrib-20091114-wince-bin-gcc-4.1.0-runtime-3.15.2-only.tar.bz2 -C /

解压到:/usr/wince

注意一个问题:此处下载的库,一定要和VLC代码匹配。我在http://download.videolan.org/pub/testing/contrib/上找了下,CE就这个第三方库。。


4.下载VLC代码。

下载地址:

http://download.videolan.org/pub/videolan/vlc/1.0.5/vlc-1.0.5.tar.bz2

解压目录:

\home\UserName\vlc-1.0.5\

并且进入该目录执行:

./bootstrap

一般没有错误,可能出现的错误:

+ aclocal-1.9 -I m4
/usr/bin/m4:configure.ac:4643: cannot create temporary file for diversion: Permission denied

autom4te-2.61: /usr/bin/m4 failed with exit status: 1
aclocal-1.9: autom4te failed with exit status: 1

分析:杀毒软件有关系。

解决方法:关闭杀毒软件重新运行./bootstrap。

 至此准备工作就完成。

二、配置编译选项

建立一个conf-vlc.sh文件,建议用UltraEdit打开,编辑,如果直接文本编辑的话最后编辑完的文件需要用

dos2unix conf-vlc.sh

转换脚本的编码格式。(注意行尾的空格和斜线,最后一行只有空格没有斜线)。文件的开始几行是设置一些路径,一般也不需要修改。后边部分主要是对VLC的功能的添加和删除。有很多选项都有默认值,具体请执行命令:

./configure –help > conf.txt

后,在conf.txt中查看具体选项设置说明。

下面的列出的是,VLC1.0.5版本设置成功的conf-vlc.sh

PATH=/opt/mingw32ce/bin:$PATH \

CPPFLAGS="-I/usr/wince/include -D_WIN32_WCE=0x0600" \

LDFLAGS="-L/usr/wince/lib" \

PKG_CONFIG_LIBDIR=/usr/wince/lib/pkgconfig \

PATH=/opt/mingw32ce/bin:$PATH \
CPPFLAGS="-I/usr/wince/include -D_WIN32_WCE=0x0600" \
LDFLAGS=-L/usr/wince/lib \
PKG_CONFIG_LIBDIR=/usr/wince/lib/pkgconfig \
./configure --host=arm-mingw32ce \
            --enable-dshow --enable-bda --disable-hal --disable-activex --enable-vlc \
            --disable-directx --disable-dvdnav --disable-libgcrypt --enable-wingdi \
            --disable-remoteosd --disable-sdl --disable-skins2 \
            --disable-faad --disable-mad --disable-a52 \
            --enable-wingdi --enable-waveout \
            --disable-mkv --disable-httpd --enable-libmpeg2 --enable-ogg \
            --enable-live555 --enable-realrtsp --enable-bda \
            --enable-flac --disable-theora \
            --enable-csri --enable-libass --enable-asademux --enable-freetype=/usr/wince/freetype-2.3.11 \
            --enable-release --enable-optimizations --enable-sse --enable-mmx --enable-optimize-memory

 

编辑完conf-vlc.sh文件,执行脚本:

./conf-vlc.sh

如果脚本遇到了类似Permission denied的错误,提升脚本的权限:

chmod 777 configure-vlc01.sh
如果还有错误,一般是对应的库没有,或者版本不对。

见到以下内容说明脚本运行成功了。

You can tune the compiler flags in vlc-config.
To build vlc and its plugins, type `./compile' or `make'.

 

至此配置工作就完成了

三、编译代码


执行命令:

make

如果刚执行几行就出现错误,请重新设置PATH,命令:

PATH=/opt/mingw32ce/bin:$PATH

 

如果遇到Offset OffsetHigh相关的错误

打开src/misc/block.c,

注释OVERLAPPED olap = { .Offset = offset, .OffsetHigh = (offset >> 32), };
改为:

 OVERLAPPED olap;
 olap.Offset = offset;
 olap.OffsetHigh = (offset >> 32);


如果中途遇到file not recognized:file format not recognized

尝试执行make clean


如果中途遇到关键字atoll的错误,打开config.h搜索关键字atoll

注掉以下代码:

#define HAVE_ATOLL 1

如果中途遇到关键字iconv的错误,打开config.h搜索关键字iconv

注掉以下代码:

#define HAVE_ICONV 1

再遇其他错误,检查lib是否正确,实在不行将相关模块在conf-vlc.sh

中disable掉。(需要重新运行conf-vlc.sh)

 

最后打包。

执行:

make package-wince

就能直接将生成的文件打包成vlc-1.0.5.zip

或者执行:

make package-wince-base

得到一个vlc-1.0.5的目录

 

至此我们就能得到我们要的DLLs了


你可能感兴趣的:(脚本,subversion,Path,compiler,WinCE,杀毒软件)