首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

请问Qt软件在linux系统中如何打包移植?

发布网友 发布时间:2022-04-23 18:04

我来回答

1个回答

热心网友 时间:2023-10-12 04:40

 一、准备
  busybox 1.14.1
  qt-embedded-linux-opensource-src-4.5.1
  tslib 1.4
  gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
  构建一个新的根文件系统目录,路径为
  /root/rootfs

  二、具体步骤:
  
  1、编译安装busybox
  在官网下载最新版。可以参考如下几处要修改的地方:
  Busybox Settings ---> Build Options ---> (arm-linux-)Cross Compiler prefix
  Busybox Settings ---> Installation Options --->[]Dont't use /usr
  Busybox Settings ---> Installation Options --->(/root/rootfs) BusyBox installation prefix
  Busybox Settings --->Busybox Library Tuning --->[*] Fancy Shell prompts
  输入如下命令,编译并安装。
  # make;make install

  2、编译安装tslib
  # ./autogen.sh
  # ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
  # make;make install

  安装目录指明为 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
  主要是为了在编译QTE时,不用指定tslib的头文件和库文件,方便以后程序开发。

  注意:在做这一步前,需要做一个目录链接
  在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目录下
  # ln -s ../../usr/include ./

  3、编译安装QTE
  1)、最基本的配置
  # ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
  -prefix /usr 使用这个配置,编译后的QTE库文件即可放在目标文件系统的/usr/lib下,而不是默认/usr/local/Trolltech/QtEmbedded-4.5.1 这个很深的目录
  2)、编译
  # make
  # cp lib/* /root/rootfs/usr/lib -rd 将QTE库文件拷贝到根文件系统的目录
  # cp plugins /root/rootfs/usr -rd 将QTE插件目录拷贝到根文件系统的目录

  4、根文件系统的设置
  1)、这时/root/rootfs/usr下应该有 bin etc include lib sbin目录
  tslib生成的etc目录,包含一个tslib的配置文件 nf,编辑此文件,去掉mole_raw input前的注释
  # mv etc ../ 移动到rootfs的根目录
  
  2)、进行一次清理操作
  #arm-linux-strip lib/*.so
  #arm-linux-strip usr/lib/*.so

  3)、编辑etc/profile,添加以下内容
  export QWS_MOUSE_PROTO=Tslib:/dev/event0
  export TSLIB_CONSOLEDEVICE=none
  export TSLIB_FBDEVICE=/dev/fb0
  export TSLIB_TSDEVICE=/dev/event0
  export TSLIB_CALIBFILE=/etc/pointercal
  export TSLIB_CONFFILE=/etc/nf
  export TSLIB_PLUGINDIR=/usr/lib/ts

  最后,通过mkyaffs2image 制作镜像,烧写镜像,启动ts_calibrate校验触屏即可。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com