- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
qtopia-opensource-src-4.2.3成功交叉编译与移植
qtopia-opensource-src-4.2.3成功交叉编译与移植
折腾了很多天,终于把qtopia的交叉编译环境搭建好了,并成功地进行了开发板的移植.记录下我们遇到的每一个问题,方便以后查阅和资源的网络共享。在文章之前我要声明以下所记载的内容决非网络转载,里面的每一个步骤都是我和老丁付出过艰辛的汗水并进行了实际验证的。请转载的朋友们标明出处,以对得起我们的劳动果实。本文献给刚刚进入ARM领域的那些和我一样渴望起飞的菜鸟们。希望你们少走些弯路,大家共同进步。
系统环境:同样的方法同时在Ubuntu 8.10(我的系统环境)与 Fedora(老丁的系统环境)上实现 。
??????? 交叉编译器:arm-linux-gcc 3.4.1
??????? qt包: qtopia-opensource-src-4.3.3.tar.gz 请注意,不是qtopia-core-opensource-src-4.3.3.tar.gz两个有很大的区别,前者大概有100M而后者只是前者的一部分内核大概只有50M想要得到最后的image文件夹就一定要用不带core的进行config。我就是因为了个原因浪费了三天时间。
?????? 第一步:建立好arm-linux-gcc 3.4.1。只要是有开发板的人这个搭建应该不难。
??????? 第二步:建立两个文件夹source(里面就是解压之后的源代码)和target(进行安装qtopia的目录我们想得到的那个image文件夹在make之后就会出现在这里)????
??????? 第三步:将qtopia-opensource-src-4.2.3.tar.gz解压缩并把里面的内容放到刚建立的source文件夹里面(典型的做法是mv -r qtopia-4.2.3 source) ,进入此目录。
cd source/mkspecs/qws/Linux-arm-g++
sudo gedit qmake.conf
经过我和老丁两个人的实际教训,一定要用绝对路径,在arm-Linux- 前面加上路径/usr/local/arm/3.4.1/bin/.(虽然我们已经直接在/etc/bash.bashrc修改,加上PATH=$PATH:/usr/local/arm/3.3.2/bin来设置环境变量,但是在实际的编译过程中依然遇到找不到路径的问题,解决问题的办法就是用绝对路径)。
??????? 第四步: 配置QT/E ,回到源代码根目录,在文件source/src/gui/embedded/qmouselinuxtp_qws.h中加入
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
???????? 第五步:按照道理来说现在就应该config了,但是我们的经验告诉大家,现在就config那会付出大把的时间代价来处理在漫长make中所遇到的各种问题。于是在这里我提前把make过程中我们遇到的所有问题和解决问题的办法写出来。
第一个要修改的地方是
sudo gedit /source/src/libraries/qtopiabase/qmemoryfile_unix.cpp 将里面-这行换成+这行,代码不多
int f = :pen(tmpFile.toLatin1(), O_WRONLY);
if (!f)
- f = ::open(tmpFile.toLatin1(), O_CREAT | O_WRONLY);
+ f = ::open(tmpFile.toLatin1(), O_CREAT | O_WRONLY,S_IRUSR | S_IWUSR);
if (f){ fstat(f, st);
如果不这么处理在make的过程中会出现下面的误:
/usr/include/bits/fcntl2.h:51: error: call to __open_missing_mode declared with attribute error: open with O_CREAT in second argument needs 3 arguments
第二个要修改的地方是
sudo gedit /usr/local/3.4.1/arm-linux/include/linux/videodev2.h 在
#define V4L2_PIX_FMT_HI240 v4l2_fourcc(H,I,2,4) 之后添加
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc(B,A,8,1) 然后
sudo gedit /usr/local/3.4.1/arm-linux/sys_include/linux/vide
文档评论(0)