第一个Qt应用的实现-总结移植之后的步骤

紧接着上次转载的Qt移植教程,下面通过自己调试整整一天的经历告诉各位运行时候的各种问题。

各位应该最少将tslib成功移植到了自己的JZ2440开发板上面了把,然后Qtarm库文件下的四个目录 lib example demos plugins也移植到了对应目录。以上是前提条件。

之后是将Windows下的(我习惯Windows下写qt然后linux交叉编译)qt文件传到虚拟机linux上面进行交叉编译,最后得到可执行文件。

之后重点就是如何让这个可执行文件顺利运行。首先你要编写启动这个Qt的脚本。

下面是我参考的别人的启动脚本,我是在上面加工后得到。注意我红字标出的地方

1. #!/bin/sh  

2. base1=qpe  

3. pid=`/bin/pidof $base1`  

4. if [ -n "$pid" ]; then  

5.     killall $base1  

6. fi  

7.   

8. base2=qss  

9. pid=`/bin/pidof $base2`  

10. if [ -n "$pid" ]; then  

11.     killall $base2  

12. fi  

13.   

14. base3=quicklauncher  

15. pid=`/bin/pidof $base3`  

16. if [ -n "$pid" ]; then  

17.     killall  $base3  

18. fi  

19.   

20.   

21. base4=fluidlauncher  

22. pid=`/bin/pidof $base4`  

23. if [ -n "$pid" ]; then  

24.     killall  $base4  

25. fi  

26.   

27. export TSLIB_ROOT=/usr/local/tslib  #你自己tslib移植路径

28. export TSLIB_TSDEVICE=/dev/event0   #修改成你的触摸屏驱动(也就是cat以后出乱码的那个)

29. export TSLIB_TSEVENTTYPE=H3600  

30. export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf  

31. export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts  

32. export TSLIB_CALIBFILE=/etc/pointercal  

33. export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts  

34. export TSLIB_CONSOLEDEVICE=none  

35. export TSLIB_FBDEVICE=/dev/fb0  

36. export QTDIR=/usr/local/Trolltech/QtEmbedded-4.8.5-arm #你自己的Qt移植路径  

37.   

38.   

39. export LD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/:$QTDIR/lib:/root/tslib/build/lib:$LD_LIBRARY_PATH  

40. export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/tslib/bin  

41.   

42.   

43. if [ -c /dev/event0 ]; then          #你自己的触摸屏驱动  

44.         export QWS_MOUSE_PROTO="Tslib:${TSLIB_TSDEVICE}"  

45.         if [ -e /etc/pointercal -a ! -s /etc/pointercal ] ; then  

46.                 rm /etc/pointercal  

47.                 /usr/local/tslib/bin/ts_calibrate   #你自己的调试程序位置

48.         fi  

49. else  

50.         export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"  

51.         >/etc/pointercal  

52. fi  

53. export QWS_KEYBOARD=TTY:/dev/tty1  

54.   

55.   

56.   

57. FB_SIZE=$(cat /sys/class/graphics/fb0/virtual_size)  

58. #这里应该是修改分辨率,不过我暂时没用过  

59. #export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1"  

60. case "$FB_SIZE" in  

61. 800,480)  

62. export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1"  

63. ;;  

64. 480,272)  

65. export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1"  

66. ;;  

67. *)  

68. export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1"  

69. ;;  

70. esac  

71. #export QWS_DISPLAY=:1  

72.   

73.   

74.   

75. export HOME=/root/QtE4Home  

76. #下面就是你的qt可执行文件的路径,根据你自己的位置去定

77. #cd /home/linux/arm/qt-4.8.5-arm/demos/embedded/fluidlauncher(qt可执行文件的路径)  

78. ./chinesefont -qws  

 

之后执行该脚本,就可以看到你在Windows上面编写的Qt程序了

 

另外JZ2440的文件系统中注意/bin目录下的qpe.shts_cal.sh根据rcS文件可以得知,ts_cal是校验用的,里面环境变量最好根据你自己移植的qttslib对应修改,执行的ts calibrate也修改成你自己新移植的tslib下程序。

qpe这个脚本的环境变量也建议修改为你自己移植过后的位置。另外这个脚本启动了JZ2440的默认开机界面,这里我把他关了,你可以在这里面修改成你自己写的qt,这样开机便会启动你的qt应用。

 

以上虽然简单,但是捣腾过程很烦,最近一直再弄Qt应用,后续有什么心得会在贴出来的~

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页