移植QT4.5.3常见问题

  移植QT4.5.3到Micro2440常见问题总结

 

 

作者:罗毅

邮箱:luoyi07040125@126.com

时间:2010-12-25

 

 

 

移植QT了,在网上找了一大堆资料资料,很多很多的都是在转载的,有用的信息很少,也不系统,一些搞技术的一天都不负责,总是转来转去的,也不看看到底能不能用,有个时候还会误人,不禁感叹,要想在通过太杂太乱的网络学点东西,真的好难好难,没办法,既然要决定入这一行,就得忍受这种苦难。好了,费话少说,直接进入正题吧。

下面是我在移植的时候碰到一些问题,把它们总结出来,供各位网友学习的时候借鉴参考,通过网络学习嵌入式,现在把我的学习经验供大家参考,也算是有取有予吧,响应Richard Stallman的号召吧。为你能看到这篇文档而庆幸吧,因为你用几分钟的时候就能收获到几个月的经验。

 

NO.1 Segmentation fault 解决办法

有两种方法可解决问题:

1.此错误其实是图形缓冲区linuxfb的问题,可以修改qt-embedded-opensource-src-4.5.3/src/gui/embedded/qscreenlinuxfb_qws.cpp源码:

 

424行左右的地方:

 

726行左右的地方:

 

除此之外,在./configure中如果没有去掉一些不必要或硬件不支持的选项也可能引发Segmentation Fault问题

2.问题是由于编译器器引起。

编译QT程序的arm-linux-gcc本身的bug。有效的解决方法是,使用4.1.2版本的arm-linux-gcc代替我的arm-linux-gcc-4.3.2

 

NO. 2  linuxFB:driver not found

             No raw modules loaded

             Ts_config:No such file or directory

    我遇到这样的问题是由于修改ts.conf时候module raw input时在前面留有空格所至,所以 注意一定要去掉module raw input 前面的空格,否则会提示:

       linuxFB: driver not found

       最好是去掉所有无用的东西,只留下:

      

 

 

NO.3  ts_open:No such file or directory

            dev/touchscreen/ucb1x00:no such file or directory

       出现这样的错误的时候,你可以在终端查看一下etc/profile中的触摸屏配置参数有没有配置进入环境变量。

      这里还应注意,环境变量参数最好应放在前面,放在后面好像还加不进开机后的环境变量里。

      启动开发板,在终端中输入:

      env

      查看上面配置的环境变量是否加入了开机后的路径里,如没有出现下面如图所示的参数,则说明你所配置的变量没有加入变量。

 

 

 

NO.4 QWSSocket::connectToLocaFile coluld connect::No such File or directory

            运行程序的时候没有让其加到显示设备上运行。

      在终端运行程序的时候加上:

            ./hello -qws

 

 

 

NO.5 Error opening framebuffer device /dev/fb0

QScreenLinuxFb::connect: No such file or directory

         原因是 Qt-Embedded 在查找系统的显示设备时,默认去寻找 LinuxFb,也即 Linux 的/dev/fb0设备。

在开发板上出现这样的错误还是由于TSLIB_TSDECIVE环境变量没有正确加入开发板。可以用env来查看。

如果是在X86上出现这样的错误,则可能是由于安装了qvfb后,系统找不到显示的设备,你需要在运行程序之前打开显示设备:

source setenv-x86.sh     配置X86运行环境变量

./qvfb                         打开QVFB

./hello -qws

如果还是不行,你就需要在编译Qt-Embedded时的configure命令加上如下选项./configure -plugin-gfx-qvfb -plugin-kbd-qvfb -plugin-mouse-qvfb 或

./configure -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb

如果,你不想重新编译Qt-Embedded,也可以单独编译qvfb的gfxdrivers,命令如下cd qt-embedded-linux-opensource-src-4.5.3/src/plugins/gfxdrivers/qvfb/ /usr/local/Trolltech/QtEmbedded-4.5.3/bin/qmake

gmake install

   

 

 

 

NO.6

[root@FriendlyARM fa]# ./hello -qws

./hello: relocation error: /opt/qt/lib/libQtGui.so.4: symbol __floatsisf, version Gcc_3.0 not defined in file libgcc_s.so.1 with link time reference.

 

拷贝/usr/local/arm/3.4.2/arm-linux/lib/目录下的libgcc_s.so、libgcc_s.so.1这两个文件覆盖/opt/mini2440/yaffs_fs/root_qtopia/lib目录下的libgcc_s.so、libgcc_s.so.1就可以了(其实这两个文件中,一个是另外一个的符号链接)。

 

 

NO.7

运行Qt程序时,如果提示无法加载某些库文件,那么,首先检查环境变量$LD_LIBRARY_PATH是否包含了Qt库文件在开发板上的存放路径;第二,如果环境变量正确,那么,则根据提示,从4.3.2交叉编译工具存放路径下的/lib目录中将所需库文件复制到开发板上的Qt库中去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值