使用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,并无可以直接运行的界面)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值