Qtopia Core 4.3.5移植到9263EK平台记录


Qtopia 是Trolltech 公司为采用嵌入式Linux操作系统的消费电子设备而开发的综合应用平台, Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。

Qtopia的特性如下所示:

窗口操作系统 游戏和多媒体 工作辅助应用程序 同步框架 PIM应用程序 Internet应用程序 开发环境 输入法 Java集成 本地化支持 个性化选项 无线支持

前一阵把LCD在内核启动代码的显示做完,今天终于把QT嵌入式平台搭建好了,当然也解决了一些比较主要的问题,下面开始叙述!

首先我的内核是用arm-none-linux-gnueabi-交叉编译工具编译的,这也就决定了你的文件系统、应用程序、QT平台也要用此工具编译。

不然当你在文件系统下运行可执行程序时会提示:No Bash! 同时也会误导你可能是由于LIb文件的问题!

编译、移植Qtopia Core:

(1) # tar zxvf qtopia-core-opensource-src-4.3.5.tar.gz
 # cd qtopia-core-opensource-src-4.3.5
 
      (重要的一步)修改mkspecs/qws/linux-arm-g++下的qmake.conf文件,www.bkjia.com把文件里面的编译器指定为arm-none-linux-gnueabi
      用arm-none-linux-gnueabi-gcc和arm-none-linux-gnueabi-g++替代以下的arm-linux-gcc和arm-linux-g++
      QMAKE_CC = arm-linux-gcc
      QMAKE_CXX = arm-linux-g++
      QMAKE_LINK = arm-linux-g++
      QMAKE_LINK_SHLIB = arm-linux-g++

    #./configure -no-largefile -no-qt3support -nomake tools -make examples -silent -xplatform qws/linux-arm-g++ -  embedded arm -depths 16,18,24,32

    #make (时间很长,要有心里准备)
    #make install
 
注:上面./configure的参数中-system-libjpeg需要libjpeg库,必须在安装前先安装libjpeg库。否则会报错。
 
    为了使QT4.4的qmake和QtopiaCore--arm的qmake区别,我把QtopiaCore-arm中的bin目录下的qmake和ui等的文件名的首字母都改成了大写,也就是:Qmake,Ui等。然后修改/.bashrc修改PATH变量。具体步骤如下:
 #cd /usr/local/Trolltech# cd QtopiaCore-4.3.5-arm/bin/
 #mv qmake Qmake  //其他3个文件使用同样的操作,这里就不多说了
 #vim /.bashrc
 在最后一行加入
 export PATH=$PATH:/usr/local/Trolltech/QtopiaCore-4.3.5-arm/bin
 保存退出
到此Qtopia-core-opensource-arm已经安装成功。

 (2) 将/usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib下的文件拷到文件系统的lib下

      注意:fonts文件夹只留wenquanyi字体就行不然会出现汉字显示为空的问题

      QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

      app.setFont(QFont("wenquanyi", 12, 50));
      如果QT界面显示的全是乱码,那么这时应该就是编码的问题。
      如果QT界面显示的全是空白,那么这时应该就是字体的问题。


(3)添加QT环境变量到开发板

      在文件系统中,关键要设置环境变量,才能让Qt4的程序找到我们移植的Qt4的库,真正跑起来。设置环境变量可分两种,与PC机上一样,可以在命令行下设置,还有一种方法是在/etc/profile文件中设置,让开发板一启动就自动设置,添加命令如下:

export FRAMEBUFFER='/dev/fb/0'(我没有加)

export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/lib/Qtopia:$LD_LIBRARY_PATH

export QWS_DISPLAY="LinuxFb:mmWidth640:mmHeight480:0"(我没有加)

关键是LD_LIBRARY_PATH,这个设置让系统知道Qt的库的位置,即/usr/lib/Qtopia,还有一个关键是QWS_DISPLAY,因为我们在运行程序时,有一个参数是qws,例如:./analogclock –qws ,设置好QWS_DISPLAY后才能在显示屏上显示按我们要求比例大小的图像。

注意:添加完环境变量后source /etc/profile才生效

如果想要开机就执行你做的QT程序的话可以在profile文件中继续添加exec /路径/程序名 -qws

建议你先备份个文件系统因为开机就运行QT程序的话就不能再进文件系统修改profile文件了!

终于完成了,不错!

相关内容