QT4如何移植到ARM-LINUX目标板
我的板子是up-star2410,linux系统,内核2.6,在PC上交叉编译好的QT程序,想在目标板运行。我是初学者,请高手指点。最好详细说明:QT库的移植,目标板QT...
我的板子是up-star2410,linux系统,内核2.6,在PC上交叉编译好的QT程序,想在目标板运行。我是初学者,请高手指点。
最好详细说明:QT库的移植,目标板QT环境变量设置,最好还带触摸屏驱动··请高手指点。。可加分· 展开
最好详细说明:QT库的移植,目标板QT环境变量设置,最好还带触摸屏驱动··请高手指点。。可加分· 展开
2个回答
展开全部
一、准备
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,编辑此文件,去掉module_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校验触屏即可。
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,编辑此文件,去掉module_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校验触屏即可。
浙江启扬智能科技有限公司
2023-06-12 广告
2023-06-12 广告
不一定,ARM架构的嵌入式开发可以基于uc/os、Linux、Windows等操作系统,而不一定要使用LINUX操作系统。在ARM架构上,Windows和Linux都是可以使用的,而且许多嵌入式系统开发工具也都是支持这两种操作系统的。因此,...
点击进入详情页
本回答由浙江启扬智能科技有限公司提供
展开全部
整理了一下我移植QTE的一些步骤,此类网上很多,我不保证我的方法是最好的,我也不会把每一步做什么写得很清楚。
我所想要分享的是我的经验,而不是方法。
一些环境
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
这项一定要选上,不然设置/etc/profile 中PS1变量不生效
# 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的头文件和库文件。将来编译其他需要链接tslib的程序时,也不需要指定。
在做这一步前,需要做一个目录链接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目录下
# ln -s ../../usr/include ./
当然,如果这一步你不是很清楚,也可以配置tslib安装在你指定的目录($tslib),到时候配置QTE时 -I/($tslib)/include -L/($tslib)/lib
安装tslib到rootfs
# ./configure -prefix=/root/rootfs/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make install
3.QTE的编译与安装
最基本的配置
# ./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 这个很深的目录
# make
# cp lib/* /root/rootfs/usr/lib -rd 将QTE库文件拷贝到根文件系统的目录
# cp plugins /root/rootfs/usr -rd 将QTE插件目录拷贝到根文件系统的目录
4.根文件系统的设置
这时/root/rootfs/usr下应该有 bin etc include lib sbin目录
tslib生成的etc目录,包含一个tslib的配置文件 ts.conf,编辑此文件,去掉module_raw input前的注释
# mv etc ../ 移动到rootfs的根目录
创建rootfs的其他目录,添加etc目录下的其他文件,拷贝toolchain下的库文件,这不是本文讨论的地方
关键的几处操作
进行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so
编辑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/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
好了,mkyaffs2image 制作镜像,烧写镜像,启动
ts_calibrate校验触屏,运行一个qte程序试试看。
说明:以上笔记来自一位叫长风的网友。
在这里我特别的针对你的情况说明一下:
你应该是有一个能用的文件系统了。
这时候把你交叉编译(这时候已经安装在你的pc上了)的库搬到你的板子上就行了。比如默认的是这个路径:/usr/local/Trolltech/QtEmbedded-4.5.0
同时在你的板子上建立这么个路径,把这个目录下的lib全部复制到你的板子的这个路径。顺便在上述的这个路径复制一些例程(在同目录的demos和examples)就在可个进行测试了。
另外如果要用触摸屏的话,认真看上述网友的笔记。
我所想要分享的是我的经验,而不是方法。
一些环境
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
这项一定要选上,不然设置/etc/profile 中PS1变量不生效
# 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的头文件和库文件。将来编译其他需要链接tslib的程序时,也不需要指定。
在做这一步前,需要做一个目录链接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目录下
# ln -s ../../usr/include ./
当然,如果这一步你不是很清楚,也可以配置tslib安装在你指定的目录($tslib),到时候配置QTE时 -I/($tslib)/include -L/($tslib)/lib
安装tslib到rootfs
# ./configure -prefix=/root/rootfs/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make install
3.QTE的编译与安装
最基本的配置
# ./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 这个很深的目录
# make
# cp lib/* /root/rootfs/usr/lib -rd 将QTE库文件拷贝到根文件系统的目录
# cp plugins /root/rootfs/usr -rd 将QTE插件目录拷贝到根文件系统的目录
4.根文件系统的设置
这时/root/rootfs/usr下应该有 bin etc include lib sbin目录
tslib生成的etc目录,包含一个tslib的配置文件 ts.conf,编辑此文件,去掉module_raw input前的注释
# mv etc ../ 移动到rootfs的根目录
创建rootfs的其他目录,添加etc目录下的其他文件,拷贝toolchain下的库文件,这不是本文讨论的地方
关键的几处操作
进行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so
编辑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/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
好了,mkyaffs2image 制作镜像,烧写镜像,启动
ts_calibrate校验触屏,运行一个qte程序试试看。
说明:以上笔记来自一位叫长风的网友。
在这里我特别的针对你的情况说明一下:
你应该是有一个能用的文件系统了。
这时候把你交叉编译(这时候已经安装在你的pc上了)的库搬到你的板子上就行了。比如默认的是这个路径:/usr/local/Trolltech/QtEmbedded-4.5.0
同时在你的板子上建立这么个路径,把这个目录下的lib全部复制到你的板子的这个路径。顺便在上述的这个路径复制一些例程(在同目录的demos和examples)就在可个进行测试了。
另外如果要用触摸屏的话,认真看上述网友的笔记。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询