关闭

在mini2440上移植QtEmbedded遇到的问题

481人阅读 评论(0) 收藏 举报

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



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:205571次
    • 积分:2541
    • 等级:
    • 排名:第14528名
    • 原创:46篇
    • 转载:72篇
    • 译文:0篇
    • 评论:5条
    最新评论