qt-embedded-linux-opensource-src-4.5.3移植到s3c6410

首先要有配置好的环境,本文使用的编译环境如下:

主机系统:Ubuntu 9.10
主机编译器:gcc 版本 4.4.1
交叉编译器:arm-linux-gcc-4.0.1
软件资源:qt-embedded-linux-opensource-src-4.5.3.tar.gz
 qt-x11-opensource-src-4.5.1.tar.gz

 

移植过程:

平时程序都是在PC上完成的,所以我们需要先安装X11版的Qt来获得qvfb这个工具。嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。

qt-x11-opensource-src-4.5.1编译安装过程:

1.解压文件

将qt-x11-opensource-src-4.51.tar.gz复制到/root/local/qt目录下,进行解压,在终端中进行如下操作:

#cd /root/local/qt

#tar zxvf qt-x11-opensource-src-4.5.1.tar.gz

解压完成后,得到/usr/local/qt/qt-x11-opensource-src-4.5.1目录。下面就开始进行编译了。

2.编译及安装qt-x11-opensource-src-4.5.1

进入/usr/local/qt/qt-x11-opensource-src-4.5.1目录,进行编译安装。在终端中进行如下操作:

#./configure –qvfb

#make

#cd tools/qvfb

#make

#cd ../..

#make install

3.复制文件

make install 完 成后,会在/usr/local目录下生成一个Trolltech目录,形成/usr/local/Trolltech目录,这是qt-x11- opensource-src-4.5.1安装后所在的目录,进入/usr/local/Trolltech会看到一个Qt-4.5.1的目录,将 /usr/local/qt/qt-x11-opensource-src-4.5.1/tools/qvfb目录下的qvfb相关文件拷贝到/usr /local/Trolltech/Qt-4.5.1/bin目录下,在终端中操作(确定当前目录是/usr/local/qt/qt-x11- opensource-src-4.5.1):

#cp tools/qvfb/qvfb* /usr/local/Trolltech/Qt-4.5.1/bin

 

qt-embedded-linux-opensource-src-4.5.1编译安装过程,为了程序开发的便捷性,我安装了x86版和arm版,先在PC上使用x86版和qvfb开发,完成以后再使用arm版交叉编译放到开发版上运行。

编译及安装qt-x11-opensource-src-4.5.1-arm

安装这个是最为关键的,因为编译好后要把lib拷贝到板子上

对于触摸屏幕,我使用的是 tslib1.4

交叉编译tslib过程如下:

解压到/home下

#./autogen.sh
#./configure --prefix=/home/duancp/mytslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes (可以先生成个cache文件)

#make

#make install-strip //生成瘦身应用程序和库

编译qt-x11-opensource-src-4.5.1-arm

进入/usr/local/qt/qt-x11-opensource-src-4.5.1-arm目录,进行编译安装。在终端中进行如下操作:

./configure -prefix /usr/local/QtEmbedded-4.5.2 -embedded arm -no-webkit -qt-mouse-tslib

 qws/linux-arm-g++/qmake.conf中添加:

QMAKE_INCDIR = tslib -build/include # path to compiled includes
QMAKE_LIBDIR = tslib -build/lib # path to compiled libs

#make

#make install

漫长的编译结束后将在主机(Ubuntu)下的/usr/local/QtEmbedded-4.5.2 得到编译后的结果。

设置在ARM中运行时的环境变量

上面步骤之后已经得到了可用的 Qte,把整个 QtEmbedded-4.5.2 目录复制到板子根目录

的/usr/local/路径下。接着在板子的/usr/local/QtEmbedded-4.5.2 中添加脚本文件setenv-arm.sh,

添加如下内容:

 

export QTDIR=/usr/local/QtEmbedded-4.5.2

export QPEDIR=/usr/local/QtEmbedded-4.5.2

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH

export TSLIB_TSDEVICE=/dev/input/event1

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

export TSLIB_PLUGINDIR=/usr/local/lib/ts

export TSLIB_CALIBFILE=/etc/pointercal

export QT_QWS_FONTDIR=/usr/local/QtEmbedded-4.5.2/lib/fonts

export QWS_MOUSE_PROTO="TSLIB:/dev/input/event1 USB:/dev/input/mice"

export QWS_SIZE='480x272'

export QWS_KEYBOARD=TTY:/dev/tty1

 

不过为了防止权限不足的问题,在主机上先给与这个文件可执行属性:

sudo chmod 777 setenv-arm.sh

注意红色部分字体的设置是非常重要的,主要是指定触摸屏的工作参数。最后一句是自

动运行特定的程序,保存退出,并进入板子 shell 界面执行这个脚本:

cd /usr/local/QtEmbedded-4.5.2

./setenv-arm.sh

接着便可以运行一下自带的那些测试程序了:

/usr/local/QtEmbedded-4.5.2/examples/graphicsv

iew/collidingmice/collidingmice -qws -fn wenquanyi

 

注意:需要提醒用户注意的是,qtopia-2.2.0 的运行和 Qte-4.5.2 的运行需要设置不同的

环境变量,因此最好保证两者没有同时运行。如果系统中已经运行了 qtopia-2.2.0,请使用

kill 命令将 qtopia 相关的进程都杀死。


本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2010/05/30/1747480.html,如需转载请自行联系原作者


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法

<p style"line-height: 19px; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;">有些成员变量的数据类型比较特别&#xff0c;它们的初始化方式也和普通数据类型的成员变量有所不同…

【Intellij Idea】设置JDK

1&#xff0c;File-->Project Structure 说明&#xff1a;可以设置整个工程的JDK&#xff0c;也设置每个modules的JDK,但是一般整个工程的JDK. 2&#xff0c;或者通过快捷键&#xff1a;ctrlaltshifts 转载于:https://www.cnblogs.com/august-shi/p/6655469.html

c#操作html dom元素,C#获取与修改HTML DOM元素信息

用C#和JavaScript交互首先要解决C#读取HTML DOM元素的问题。 在System.Windows.Browser命名空间下&#xff0c;有一个HtmlDocument、HtmlPage、HtmlElement等类&#xff0c;可以用来读取HTML DOM元素。其读取方法和JavaScript如出一辙。引用内容&#xff1a; //初始化一个docum…

Hibernate之工具类HibernateUtil

原创文章&#xff0c;转载请注明&#xff1a;Hibernate之工具类HibernateUtil By Lucio.Yang 1.最简单的工具类&#xff0c;实现SessionFactory的单例共享&#xff0c;session的管理 package com.cc.hibernate;import org.hibernate.Session; import org.hibernate.SessionFac…

c++读取文件–结束条件的判断

转载&#xff1a;http://blog.sina.com.cn/s/blog_623e3c050100neei.html 在使用C/C读文件的时候&#xff0c;一定都使用过eof&#xff08;&#xff09;这个函数来判断文件是否为空或者是否读到文件结尾了&#xff0c;也会在使用这个函数的过程中遇到一些问题&#xff0c;如不…

绘图用计算机配置要求,绘图笔记本电脑基本配置要求 绘图笔记本推荐

现在很多工业图、工程图都需要用电脑来话&#xff0c;比如CAD、PS、三维画图这些软件对电脑的配置要求还是比较高的&#xff0c;还有一些对色彩要求高的动画软件&#xff0c;那就更加需要配置了&#xff0c;下面小编就来简单说说绘图笔记本电脑最基本的配置要求以及绘图笔记本推…

关于dllimport的使用

最近做一个动态加载插件的项目&#xff0c;插件中的dll 主要是各厂商各型号的读卡器的通用类库&#xff0c;stdapi.dll&#xff0c;WltRS.dll&#xff0c;有的还有进一步封装的dll&#xff0c;主要是为了简化通用类库的操作。 这些类库都是用C语言&#xff0c;或者C来编写的&am…

如何在MVCsheet表单页面的后台取到页面自定义字段的值?

问题&#xff1a;<asp:HiddenField id"test" runat"server"/> 在前台加了这样一个隐藏元素&#xff0c;mvcsheet表单页面&#xff0c;如何在后台获取到值&#xff0c;直接使用 test.value一直是空的。 前台经过一系列判断处理写入该值&#xff0c;需…

BigDecimal.setScale 处理java小数点

BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数&#xff0c;默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位&#xff0c;如2.35会变成2.3 setScale(1,BigDecimal.ROUND_UP)进位处理&#xff0c;2.35变成2.4 setScale(1,B…

C++的字符串分割函数

转载&#xff1a;http://blog.csdn.net/shanzhizi/article/details/17189267 C的字符串没有分割函数&#xff0c;因此需要自己写方便使用。而受到开发工具的影响&#xff0c;有很多用起来比较麻烦啦&#xff0c;下面这个比较不错奥。 用STL进行字符串的分割 涉及到string类的…

计算机无法正常更新,无法完成更新正在撤销更改请不要关闭你的计算机如何修复...

我们电脑开机的时候可能会遇到各种问题&#xff0c;比如就有用户发现电脑开机的时候&#xff0c;一直提示无法完成更新正在撤销更改请不要关闭你的计算机&#xff0c;等待了很长时间也进不去系统&#xff0c;遇到这样的问题该怎么办呢&#xff1f;不用担心小编给大家支招&#…

水一篇

发件人标题发送时间处理系统通知您的博客申请已批准2013-10-15 13:58删除系统通知博客园博客申请通知2013-10-15 12:55删除系统通知您的博客申请未通过审批2013-10-13 11:21删除系统通知博客园博客申请通知2013-10-13 11:07删除系统通知您的博客申请未通过审批2013-10-13 11:06…

如何去掉jQWidgets中TreeGrid和Grid右下角的链接

关于如何去掉这个水印&#xff0c;这是官方的说法。 更新了jQWidgets版本&#xff0c;发现在使用过程中发现每次渲染完TreeGrid和Grid后会在表格右下角出现一个www.jqwidgets.com的span标签。 在相关的脚本中搜索www.jqwidgets.com相关的关键字都没有对应结果。于是准备从其父容…

华为2015年实习生招聘考试试题

第一题&#xff1a; 描述: 目描述&#xff1a; 编写一个函数&#xff0c;将字符串中的大写的字母(A~Z)挑出来&#xff0c;同时保留原字符串中的空格&#xff0c;将挑出的大写字母和空格按原始位置组成新的字符串。 例如&#xff1a; 1&#xff09;输入&#xff1a;AUStralia&…

【NOIP2011 Day 2】观光公交

【问题描述】 小城Y市&#xff0c;拥有n个景点。由于慕名而来的游客越来越多&#xff0c;Y市特意安排了一辆观光公交车&#xff0c;为游客提供更便捷的交通服务。观光公交车在第0分钟出现在1号景点&#xff0c;随后依次前往2、3、4……n号景点。从第i号景点开到第i1号景点需要D…

基本数据类型的自动装箱

这里以Integer类型举例&#xff1a; Integer a 1; a 2; 编译后.calss文件是这样的 Integer a Integer.valueOf(1); 自动装箱 a Integer.valueOf(a.intValue() 2); 自动拆箱&#xff0c;再自动装箱 转载于:https://www.cnblogs.com/feiZhou/p/9344494.html

自媒体和计算机相关吗,做自媒体,台式电脑跟笔记本电脑用哪个好呢?

四阿哥fly回答数&#xff1a;143 | 被采纳数&#xff1a;162019-06-29 12:16:21作为去年折腾了一年自媒体&#xff0c;各种情况遇到过&#xff0c;分享下台式电脑和笔记本到底哪个好&#xff1f;好在哪里&#xff1f;如果真的要选择&#xff0c;个人还是推荐用台式比较好。工…

JS脚本显示当前日期+星期几[转]

以下的代码提供了显示当前日期和星期几的实现方法&#xff1a; function writeDateInfo() { var day""; var month""; var ampm""; var ampmhour""; var myweekday""; var…

openCV中waitKey函数介绍

#include <opencv2/opencv.hpp> #include < iostream > #include <window.h> using namespace cv; using namespace std;int main() {Mat im;double duration;im imread("1.jpg");// 测试没有namedWindow时的waitKey执行时间duration static_cas…

JavaScript indexOf() 方法 和 lastIndexOf() 方法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置&#xff0c;在一个字符串中的指定位置从后向前搜索。 语法&#xff1a; indexOf() &#xff1a; stringObject.indexOf(searchvalue,fromi…