arm移植vlc库,实现播放mp4文件。悬赏两百现大洋


arm移植vlc库,实现播放mp4文件。悬赏两百现大洋


最新移植问题 一:
/usr/bin/ld: ./.libs/libunzip.a(unzip.o): relocation R_ARM_THM_MOVW_ABS_NC against `__stack_chk_guard' can not be used when making a shared object; recompile with -fPIC
./.libs/libunzip.a(unzip.o): error adding symbols: Bad value
collect2: error: ld returned 1 exit status

最新移植问题 二:
现在是在x86架构的ubuntu12.04 64bit上编译的vlc,编译了依赖库,但编译vlc库到最后,报如下错误
图片说明

最新移植问题三:使用arm-linux-gnueabi-gcc编译vlc2.2.0,使用之前编译的依赖库,并增了x264
configure配置如下:
./configure --prefix=/opt/vlc2.2.0-arm --host=arm-linux-gnueabi --disable-lua --enable-mad --with-mad=/opt/vlc-arm-dep/libmad --disable-avcodec --disable-swscale --disable-a52 --disable-glx --disable-libgcrypt --enable-x264 --with-x264-tree=/opt/vlc-arm-dep/x264-r
错误如下:
图片说明

vlc库已经成功编译并移植到arm开发板上,能够运行,但播放视频闪退、播放视频时,命令窗口结果:
图片说明

这个vlc库有开源的, 你简单移植就可以支持的。

你为啥不跑个linux系统呢, 你的ARM有MMU吗, 什么型号?

问题1:
要重新编译源码,使用动态库形式编译(提示-fPIC就是要编译成.so)
问题2:
看不到图,无法回答。

../lib/.libs/libvlc.so: undefined reference to `vlc_event_detach'
这个问题一般是没有编译对应的模块,你要给出详细一点的配置才好看出问题所在。

交叉编译说难也不难,要耐心和细节。建议把错误贴出来,大家帮解决。

问题一:使用的是arm上的gcc编译 vlc2.2.0版本源码
configure配置如下:
./configure --prefix=/opt/vlc2.2.0

问题二:使用的是x86的linux上的arm-linux-gnueabi-gcc编译vlc2.1.0版本源码
configure配置如下:
./configure --prefix=/opt/vlc2.1.0-arm --host=arm-linux-gnueabi --disable-lua --enable-mad --with-mad=/opt/vlc-arm-dep/libmad --disable-avcodec --disable-swscale --disable-a52 --disable-glx

你用的ubuntu 应该很容易来更新库, 使用 apt-get install 命令完成。 具体的源码包库, 一般里面都会有一个文档, 告诉你如何来编译和安装, 直接执行脚本就可以了, 不需要你一步一步操作。

闪退的问题, 应该是内存不足问题导致, 我建议你用一些工具软件对运行态时做下跟踪分析。

apt-get 搜索不到的话, 应该就是你的源没有更新, 你需要把你的源更新到最新的版本。