QT在ubuntu板子移植配置

本文介绍如何在嵌入式Linux环境下通过NFS实现远程根文件系统的搭建过程,包括环境配置、库文件复制及链接创建等关键步骤,并解决常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

保证虚拟机linux桥接设好,ubuntu与板子可以相互ping

1.mkdir /utulinux2.6.24 板子ip192.168.1.168 主机linux192.168.1.200

 

 

1.tar jxvf s3c2440_recover.20090303.tar.bz2 -C /utulinux2.6.24/

 

2.gedit /etc/exports

 

最后加入一行:

/utulinux2.6.24/s3c2440_recover  *(rw,sync,no_root_squash)

 

3.板子超级终端启动设置如下

setenv bootargs 'console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.200:/utulinux2.6.24/s3c2440_recover ip=192.168.1.168:192.168.1.200:192.168.1.1:255.255.255.0:www.yctek.com:eth0:off'

 

保存修改 : saveenv

 

5.编辑目标环境下的/etc/profile(/utulinux2.6.24/s3c2440_recover), 在文件后面添加如下内容:

/etc

 

export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH

export QTDIR=/usr/local/Trolltech/Qt-4.6.3-arm

export QPEDIR=$QTDIR

export T_ROOT=/opt/ts

export PATH=$T_ROOT/bin:$PATH

export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/event0

export TSLIB_PLUGINDIR=$T_ROOT/lib/ts

export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf

export TSLIB_CALIBFILE=/etc/pointercal

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=Tslib:/dev/event0

export QWS_DISPLAY=LinuxFb:mmWidth45:mmHeight60:0

export QWS_SIZE=320x240

 

6.在目标环境中建立与编译QT-arm一样的路径:     (/utulinux2.6.24/s3c2440_recover)

mkdir /usr/local/Trolltech/Qt-4.6.3-arm

cd /usr/local/Trolltech/Qt-4.6.3-arm
mkdir lib/
mkdir lib/fonts/

把以下的库文件从编译主机中的lib复制目录中的四个库文件复制到目标板的/usr/local/Qt-4.6.3-arm/lib
libQtCore.so.4.6.3
libQtGui.so.4.6.3
libQtNetwork.so.4.6.3
libQtSql.so.4.6.3

为每个库文件创建3个连接:*.so,*.so.4,*.so.4.6

常用字库文件从/usr/local/Trolltech/Qt-4.6.3-arm/lib/fonts/复制到目标板的

/utulinux2.6.24/s3c2440_recover/usr/local/Trolltech/Qt-4.6.3-arm/lib

      /usr/local/Qt-4.6.3/lib/fonts/

 

7.

   1:将/opt下交叉编译好的tslib文件cp到开发板中对应的同样目录下,其中的include目录和lib下的pkgconfig目录可以不拷贝。

进入到/opt 复制ts目录

cp -rf ts /utulinux2.6.24/s3c2440_recover/opt/

 

   2:检查/utulinux2.6.24/s3c2440_recover/opt/

ts/etc/ts.conf内容加入 module_raw input:

module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

 

 

8.cd /usr/local/Trolltech/Qt-4.6.3-arm/mkspecs/default

 

  修改qmake配置文件:

  

  gedit qmake.conf 打开文件中在QMAKE_LINK_SHLIB 此行下面加入一行:

 QMAKE_LFLAGS  += -Wl -lts 加入后如下:

 

# modifications to g++.conf

QMAKE_CC                = arm-linux-gcc

QMAKE_CXX               = arm-linux-g++

QMAKE_LINK              = arm-linux-g++

QMAKE_LINK_SHLIB        = arm-linux-g++

QMAKE_LFLAGS           += -Wl -lts

 

# modifications to linux.conf

QMAKE_AR                = arm-linux-ar cqs

QMAKE_OBJCOPY           = arm-linux-objcopy

QMAKE_STRIP             = arm-linux-strip

load(qt_config)

 

9.将例子hellowrld 拷贝到/utulinux2.6.24/s3c2440_recover/usr 下测试

 

在串口终端进入文件夹中 ./helloworld -qws

 

 

10.错误解决方法:

提示:./helloworld: error while loading shared libraries: libts-0.0.so.0: cannot open

shared object file: No such file or directory

 

Ts触摸屏驱动有问题,解决方法看路径是否对。

 

错误:

./helloworld: error while loading shared libraries: libstdc++.so.6: cannot open

shared object file: No such file or directory

对应文件拷贝链接:

进入目标系统lib目录下:

ln -s libstdc++.so.60.0.3 libstdc++.so.6

 

错误:

Cannot create Qt for Embedded Linux data directory: /tmp/qtembedded-0

Aborted

 

在目标板根目录下创建文件夹:

mkdir tmp 

 

11.重启nfs服务:

   /etc/init.d/nfs-kernel-server restart

 

重启板子 reboot

 

12.校准:(遇到错误提示如下)

Could not read calibration: "/etc/pointercal"

 

超级终端命令行输入: ts_calibrate  运行

在触摸屏上点击鼠标跟踪。

13.重新再运行helloworld

14.想要板子开机运行程序 要挂载电脑端的utulinux目录

首先启动utubootloader 运行: setenv bootargs

saveenv 启动后运行:

 mount -t nfs 192.168.1.200:/utulinux2.6.24/s3c2440_recover /mnt

(挂载不了重启板子 reboot)

 

15.将对应的nfs目录的链接库 目录文件夹拷贝到linux下

 

 

cp hello /utulinux2.6.24/s3c2440_recover/usr/local/

 

source /usr/local/Trolltech/Qt-4.6.3-x86/setenv.sh

qvfb &

 

 

ln -s libstdc++.so.60.0.3 libstdc++.so.6

 

mkdir tmp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值