最初是记录在网易博客:http://dongguanlishh.blog.163.com/
我的基本配置:win7,ubuntu10.04
目标板:OK6410A,linux3.0.1
交叉编译环境:arm-linux-gcc 4.3.2 安装位置:/usr/local/arm/4.3.2
作为一个小白,最痛苦的莫过于:出现问题,不知道从何下手。由于项目的需要,我所用的开发板的屏幕选择的是8寸屏,所以在测试飞凌提供的一些资料的时候,比如多媒体视频编解码就会遇到问题,因为官方的技术支持是针对4.3寸屏的,所以我就悲剧。但是项目需要,我必须硬着头皮上。我想,那么我就自己编译源码,自己修改吧!这真是一个大胆的决定,于是,接下来各种无奈就随之而来。之前打飞凌的技术支持电话,没有什么结果,在飞凌论坛上提问没人回答,之后还是自己解决结贴的。
首先我找到源码的位置,即光盘A中的\Linux-3.0.1\apptest\多媒体编解码测试\测试程序源码\Forlinx-Player\,里面有两个压缩包,下面说说主要步骤,省略我苦逼的摸索过程。
1、分别解压,一个是Player,另一个是Embeded文件夹。好了,所有的资料就是这两个了。
2、将文件夹Forlinx-Player拷贝到我虚拟机的ubuntu下,我的位置:/home/dongguanli/QTapp/exercise/Forlinx-Player
3、将Forlinx-Player中的两个压缩包解压,一个为Player,另一个为Embeded,之后将Embeded文件夹拷贝到ubuntu的/usr/路径下(注意此处很重要!!!直接决定下面的编译);
4、通过Qt Creator打开Player文件夹下的工程文件Player.pro,之后再clean project 再build project;于是自己根据警告提示,添加相应的头文件,比如/home/dongguanli/QTapp/exercise/Forlinx-Player/Player/HwScale.c:154: warning: implicit declaration of function 'ioctl',则在文件中加入头文件#include <sys/ioctl.h>;并在PlayerEngine.c中加入头文件#include "WaveEngine.h",这样就会减少一些警告了,还有一些未定义和未初始化的变量,可以不用管,或者根据自己的情况进行再修改;
5、之后就是修改源码的关键位置,对于我而言,8寸屏为800*600在Qt Creator的工程的文件PlayerEngine.c中相应代码段修改为如下
//默认解码后的图片高度和宽度
//#define DEFAULT_WIDTH 480
//#define DEFAULT_HEIGHT 272
#define DEFAULT_WIDTH 800
#define DEFAULT_HEIGHT 600
6、至此,再编译一遍Player,然后发现基本没什么警告了,好这下,开始qmake,我的qmake路径是:#/home/dongguanli/extend/qt/qt-everywhere-opensource-src-4.7.1/qt-everywhere-opensource-src-4.7.1/bin/qmake,之后再修改Player文件夹下的Makefile文件,执行:# gedit Makefile ,之后再将CFLAGS和CXXFLAGS修改为:
CFLAGS = -fno-rtti -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS = -fno-rtti -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
7、再执行make
8、这下就可以通过NFS挂载到开发板运行了!