`
xpp02
  • 浏览: 1016878 次
社区版块
存档分类
最新评论

使用Cygwin实现vlc 1.0.5的wince移植

 
阅读更多

本文完全参照了天将降的博客文章,写于此以作来日备忘之用,原文地址:http://bk6.blog.163.com/blog/static/24498560201051193449196/

第一步:下载安装Cygwin。笔者建议大家不要安装不完整的版本,以免出现不必要的错误。之前就是用了网上下的一个300多兆的简化版本,结果编译会出现缺少编译器等错误。Cygwin没有必要下载最新的,只要是完整版本就好。最后提醒大家在线安装Cygwin的过程相当漫长,而且会有下到一大半时报错无法下载的问题,强烈建议选择Use IE5 Settings的方式下载

安装Cygwin时如下选项是必选项:

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)
Web
curl (optional: for building extras/contrib) (7.16.3-1)
wget (optional: for building extras/contrib) (1.11.3-1)

这里还是建议硬盘空间大的话,完全安装!!

第二步:编译前的准备工作

源码下载:vlc-1.0.5.tar.bz2
http://download.videolan.org/pub/videolan/vlc/1.0.5/vlc-1.0.5.tar.bz2
交叉编译器:mingw32ce-0.59.1.tar.bz2
http://cdnetworks-kr-2.dl.sourceforge.net/project/cegcc/cegcc/0.59.1/cegcc_mingw32ce_cygwin1.7_r1375.tar.bz2
第三方库:contrib-20091114-wince-bin-gcc-4.1.0-runtime-3.15.2-only.tar.bz2
http://download.videolan.org/pub/testing/contrib/contrib-20091114-wince-bin-gcc-4.1.0-runtime-3.15.2-only.tar.bz2
注:比较麻烦的是第三方库,这个版本比较老,提供的第三方库也不完整,需要自己做一些修改。(可以根据执行configure脚本时的提示做对应到改动)

第三步:将mingw32ce-0.59.1.tar.bz2解压至/opt目录下;
将contrib-20091114-wince-bin-gcc-4.1.0-runtime-3.15.2-only.tar.bz2(这里我是用自己修改后的第三方库)解压至/usr目录下;
将源码vlc-1.0.5.tar.bz2解压至/home/"yourname"目录下;

完成该步骤后,你会看到:/opt/mingw32ce /usr/wince /home/"yourname"/vlc-1.0.5这三个目录

第四步:根据/vlc-1.0.5目录下configure文件编写脚本文件con-105.sh

脚本文件如下:
PATH=/opt/mingw32ce/bin:$PATH /
CPPFLAGS="-I/usr/wince/include -D_WIN32_WCE=0x0500" /
LDFLAGS="-L/usr/wince/lib" /
PKG_CONFIG_LIBDIR=/usr/wince/lib/pkgconfig /
./configure --host=arm-mingw32ce /
--enable-dshow --enable-bda --disable-hal --disable-activex --disable-vlc /
--disable-directx --disable-dvdnav --disable-libgcrypt --enable-wingdi /
--disable-remoteosd --disable-sdl --disable-skins2 /
--disable-faad --enable-mad --enable-wingdi --enable-waveout /
--enable-mkv --enable-httpd --enable-libmpeg2 --enable-ogg /
--enable-live555 --enable-realrtsp --enable-bda /
--enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac /
--with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora /
--enable-csri --enable-libass --enable-asademux --enable-freetype=/usr/wince/freetype-2.3.12 /
--enable-release --enable-disable --enable-optimizations --enable-sse --enable-mmx --enable-optimize-memory
注:此脚本文件一定要注意每行末尾不要有多余的空格,否则会出错。

第五步:执行脚本文件 ./con-105.sh

执行前,如果你是用文本编辑器编写的脚本,需要先运行命令:dos2unix con-105.sh
这里最好用root用户来执行,否则会出现权限错误提示(当然你也可以用chmod 777 con-105.sh来修改此文件的权限);


第六步:编译代码 执行命令:make
执行的过程中遇到如下错误,都找到了相应的解决方法.....

问题一:刚执行几行就出现错误

解决:可能是指定的路径没有生效,重新设置PATH,命令:PATH=/opt/mingw32ce/bin:$PATH

问题二:.libs/libaccess_realrtsp_plugin_la-access.o:access.c:(.text+0x6b8): undefined reference to `closesocket'
.libs/libaccess_realrtsp_plugin_la-access.o:access.c:(.text+0x6b8): relocation truncated to fit: ARM_26 against undefined symbol `closesocket'
collect2: ld returned 1 exit status
make[6]: *** [libaccess_realrtsp_plugin.la] 错误 1

解决:修改vlc_network.h中`closesocket'的定义;

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

注掉以下代码:#define HAVE_ATOLL 1

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

注掉以下代码:#define HAVE_ICONV 1

第七步:打包

执行:make package-wince
就能直接将生成的文件打包成vlc-1.0.5.zip
或者执行:make package-wince-base
得到一个vlc-1.0.5的目录

遇到问题:# make package-wince
OK.
cp "./bin/.libs/vlc.exe" "./vlc-1.0.5/"
cp: 无法 stat “./bin/.libs/vlc.exe”: 没有该文件或目录
make: *** [package-win-common] 错误 1

解决办法:在/home/micro/vlc-1.0.5目录下新建.libs文件夹,并将vlc.exe拷进该文件夹,然后重新执行make package-wince命令即可。

至此我们就得到了VLC 1.0.5对应的wince版本的DLLS。(注:由于后续版本中VLC已经不再为wince提供界面支持,所以我们编译的最后只能生成可供调用的DLLS,并无可以直接运行的界面)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics