您的位置:首页 > 编程语言 > Qt开发

在mini2440上移植QtEmbedded遇到的问题

2012-03-26 11:52 281 查看
1.移植完成执行程序出现的经典的Segmentation fault问题

此错误其实是图形缓冲区linuxfb的问题(http://blog.163.com/luoyi07040125@126/blog/static/832084512010112594719899/),

两种解决方法:

1)修改qt-embedded-linux-opensource-src-4.5.0/src/gui/embedded/qscreenlinuxfb_qws.cpp

函数connect()中:
/*   // del start
canaccel = useOffscreen();
if(canaccel)
setupOffScreen();
*/  //del end
canaccel = false;

函数initDevice()中:
/*   //del start
if (canaccel) {
*entryp=0;
*lowest = mapsize;
insert_entry(*entryp, *lowest, *lowest);  // dummy entry to mark start
}
*/     //del end
canaccel = false;

来自:http://www.arm9home.net/read.php?tid-2993-fpage-0-toread--page-2.html

该解决方法其实是来自友善之臂提供的Qtopia源码。

2)可以尝试使用openmoko(一个开源手机项目)提供的编译器,同样是EABI,版本为4.1.2

http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38

使用方法:

安装新的交叉编译器:

# tar zxvf arm920t-eabi.tgz -C /

会安装至 /opt/toolchains/arm920t-eabi/ 目录。

把 "/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/lib" 目录下的 libz.so libz.so.1 libz.so.1.2.3 三个动态链接库文件拷贝至开发板 /lib 目录,因为 Qt 要用到!

换个新的终端执行:

# export PATH=/opt/toolchains/arm920t-eabi/bin/:$PATH

2.字体大小问题(字体无法改变大小)

1)编程时用另一种方法设置字体大小

例子:

QFont font = QFont("Helvetica");
font.setPixelSize(12);
this->setFont(font);


在嵌入式系统中,要用setPixelSize来设置字体大小才有效果。

来自:http://www.qtcentre.org/threads/26993-font-size-difference-in-embedded-QT?highlight=font+size+in+arm+target

2)字体库修改

上面一种方法,要修改源码,比较麻烦。下面介绍一种只需修改字体库即可。

在一直后的 QtEmbedded-x.x.x-arm/lib/fonts下,将其他的字体文件都删掉,只留下unifont_160_50.qpf 即可。

或者将全部字体文件都删掉,到网上找文泉驿的字体库放进去也可以。

3.参考


Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440

http://www.arm9home.net/read.php?tid-5161.html

http://www.arm9home.net/read.php?tid-5182.html

http://www.arm9home.net/read.php?tid-9223.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: