QT.docx

上传人:b****8 文档编号:10854487 上传时间:2023-02-23 格式:DOCX 页数:13 大小:20.97KB
下载 相关 举报
QT.docx_第1页
第1页 / 共13页
QT.docx_第2页
第2页 / 共13页
QT.docx_第3页
第3页 / 共13页
QT.docx_第4页
第4页 / 共13页
QT.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

QT.docx

《QT.docx》由会员分享,可在线阅读,更多相关《QT.docx(13页珍藏版)》请在冰豆网上搜索。

QT.docx

QT

【前言:

由于我也是第一次搭建这个环境,整个所用时间不止一周,以及以前用java觉得还要配置环境变量,好麻烦,但那不过是几分钟的事,后来手动配置php,最快半天,一般我都要用一天的时间,个人比较笨;现在配置个嵌入式qt环境的时间不止一周的时间,真的是整个人都被整疯了,而且到此刻,我还不确定我的环境是否已经配置的完全正确,以下是一些环境搭建过程中碰到的问题,稍微整理了一下,建议在配环境的时候,多看几篇比较完整的环境搭建的文章,准备好前期工作(很多与编译有关的软件包提前装好),对比着做,然后出现错误了再上XX或谷歌去找答案,不要急,慢慢来,一周时间不算很长(经常错了从头再来)】

首先,去QT的官网(

QtSDKforLinux/X1132-bit**(422MB)(这样比较简便,虽然可能占的空间要大一点)

2,第二步就是安装刚刚下载的二进制文件:

chmodu+xqt-sdk-linux-x86-opensource-2010.05.1.bin

./qt-sdk-linux-x86-opensource-2010.05.1.bin(这一步需要注意已经安装了gcc,g++,并且版本足够高,因为我一开始在redhat9的系统里

装完之后,发现redhat自带的gcc版本太低,导致了很多麻烦,最终也没有解决好)

3下载cosstools包:

4。

安装crosstools

mkdir~/downloads在用户主目录下建立一个下载文件夹,之后安装过程中下载的包都会

自动放到这个文件夹下

sudoapt-getinstallbison

sudoapt-getinstallflex

以下4步是必须的,gcc的版本既不能太高也不能太低,只能是3.4;因为要用这个版本来编译内核。

sudoapt-getinstallgcc-4.1

make我刚开始下的是gcc-3.4后面发现版本太低还是要装gcc-4.1的。

所以下的那八个文件也没有用了。

(会出错:

error:

callto'__open_missing_mode'declaredwithattributeerror:

openwithO_CREATinsecondargumentneeds3arguments

在root/Downloads/gcc-4.1.1/gcc文件夹下collect2.c第1575行改为,或者直接find–namecollect2.c

redir_handle=open(redir,O_WRONLY|O_TRUNC|O_CREAT,0777);

make

makeinstall

exportPATH=/usr/local/gcc-4.1.1/bin:

$PATH注意:

gcc-4.1.1根据不同的版本做相应的修改。

我之前下的是gcc-3.4.4的。

echo$PATH

//if[-d/opt/crosstoolgcc-4.1.1-glibc-2.3.2/arm-linux];then

PATH=/opt/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux/bin:

$PATH

fi

exportPATH=/usr/local/gcc-4.1.1/bin:

$PATH:

/usr/local/arm/3.4.1/bin

[cd/usr/bin

sudoln-sgcc-3.4

sudormgcc]

正式安装

sudomkdir/opt/crosstool

sudochown当前登录的用户名/opt/crosstool这一步改变权限也省略,我本来就是root下

tar-zxvfcrosstool-0.43.tar.gz

cdcrosstool-0.43

videmo-arm.sh

TARBALLS_DIR=/home/ubuntu/Downloads注意路径RESULT_TOP=/opt/crosstoolexportTARBALLS_DIRRESULT_TOPGCC_LANGUAGES="c,c++"exportGCC_LANGUAGES

TARBALLS_DIR是指创建crosstool过程中所需要的glibc,binutils,gcc等程序的tar.bz2文件所要存放的位置,这里我把他们放在我的下载目录。

crosstool可以自动的从网上下载所需的程序,但由于crosstool在下载的过程中选择的服务器会是国外的官方服务器,会比较慢,最好在build过程之前从网上把这些所需要的文件下载过来放到TARBALLS_DIR中,具体所需要的文件会在下面做介绍。

RESULT_TOP指的是编译好后所生成的工具链安装目录/交叉编译器存放的目录,一定要改到有写权限的目录,不然无法编译。

这里我把他放在我的临时目录中

#eval`catarm.datgcc-4.1.0-glibc-2.3.2-tls.dat`shall.sh--notest

在其后,加上eval`catarm.datgcc-4.1.1-glibc-2.3.2.dat`shall.sh--notest

注意:

catarm.datgcc-4.1.1-glibc-2.3.2.dat而不是默认的gcc-4.1.1-glibc-2.3.6-tls.dat

修改linux内核版本,linux内核可以自己选择,我的linux内核是linux-2.6.24(前面下载的那个)

lingd@ubuntu:

~/downloads/crosstool-0.43$vigcc-4.1.1-glibc-2.3.2.dat按这里面的数据下载对应的文件。

以gcc-4.1.1-glibc-2.3.2.dat为标准。

下面的可能有错。

BINUTILS_DIR=binutils-2.16.1

GCC_CORE_DIR=gcc-3.3.6

GCC_DIR=gcc-4.1.1

GLIBC_DIR=glibc-2.3.2

LINUX_DIR=linux-2.6.28

LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2

GDB_DIR=gdb-6.5

如果是自己下载的放在/home/ubuntu/Downloads下

gcc-3.4.4-glibc-2.3.2.dat文件如下

BINUTILS_DIR=binutils-2.15GCC_DIR=gcc-3.4.4GLIBC_DIR=glibc-2.3.2LINUX_DIR=linux-2.6.8LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2GCC_CORE_DIR=gcc-3.3.6GDB_DIR=gdb-6.5

修改交叉编译工具前缀

viarm.dat

KERNELCONFIG=`pwd`/arm.config

TARGET=arm-linux(该名称为目标名称,我是觉得默认(arm-unknow-linux-gnu)的太长所以修改了,修改了后要注意了相关目录的权限)

TARGET_CFLAGS="-O"

执行下一个命令,系统将开始编译,并下载下面的包:

gcc-3.4.4-glibc-2.3.2.dat文件可以看到gcc-4.1.1-glibc-2.3.2.dat文件可以看到黑色的文件,根据不同的版本进行修改。

binutils-2.16.1binutils-2.15.tar.bz2

gcc-3.3.6gcc-3.3.6.tar.bz2

gcc-4.1.1gcc-3.4.4.tar.bz2

glibc-2.3.2glibc-2.3.2.tar.bz2

linux-2.6.24linux-2.6.8.tar.bz2

linux-libc-headers-2.6.12.0linux-libc-headers-2.6.12.0.tar.bz2

glibc-linuxthreads-2.3.2glibc-linuxthreads-2.3.2.tar.bz2

gdb-6.5

这个工程很长需要n小时的时间来

可以ls一下看看里ttp:

//

./demo-arm.sh(会执行很漫长)

会出现问题:

要在非root权限下操作./demo-arm.sh,但是要注意,/opt/crosstool/crosstool-0.43/buid用户所有者,即是否在非root权限下可读写。

二.crosstool在ubuntu下运行提示getandpatch.sh:

1:

patch:

notfound

1.执行apt-getupdate

2.apt-getinstallpatch

执行完后,最后一行提示:

Done!

执行完毕,修改环境变量

安装完成后,默认的安装目录就是开始创建的那个/opt/crosstools/

1.添加环境变量我修改的是etc下bash.bashrc文件

vi~/.bashrc

在最后添加如下

if[-d/opt/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux];then

PATH=/opt/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux/bin:

$PATH

fi

就是把安装的工具bin目录添加到PATH变量中。

保存

2.source~/.bashrc,使环境变量生效读入:

sourcebash.bashrc

$source~/.bashrc

3.重启终端。

输入arm后,连续按两下table键,可以看到arm-linux-gcc-4.1.1,说明已经安装成功

$arm

arm2hpdlarm-linux-gccarm-linux-objdump

arm-linux-addr2linearm-linux-gcc-4.1.1arm-linux-ranlib

arm-linux-ararm-linux-gccbugarm-linux-readelf

arm-linux-asarm-linux-gcovarm-linux-size

arm-linux-c++arm-linux-gprofarm-linux-strings

arm-linux-c++filtarm-linux-ldarm-linux-strip

arm-linux-cpparm-linux-nm

arm-linux-g++arm-linux-objcopy

$arm

=================================================================

可能出现的问题:

1.crosstool在ubuntu下运行提示getandpatch.sh:

1:

patch:

notfound

1.执行apt-getupdate

2.apt-getinstallpatch

2.gcc版本太低,或者太高都不行,我的ubuntu是10.10,gcc版本4.4.6;需要再安装一个3.4;执行命令的时候可能找不到软件包,需要到软件中心把所有的软件源(9.04;第三方)都勾选上。

=================================================================

现在开始搭建嵌入式QT环境;

首先从官网下载QT的嵌入式版,注意官网上的嵌入式版和linux版都是199M,其实他们在官网上的位置不一样,

Qtlibraries4.7.0forembeddedLinux(199MB)

Qtlibraries4.7.0forLinux/X11(199MB)

其实下载下来是一样(看他们的下载路径都是一样的)的,。

下载下来的文件名为:

qt-everywhere-opensource-src-4.7.0.tar.gz

解压

tarzxvfqt-everywhere-opensource-src-4.7.0.tar.gz

把解压后的文件再复制两份(一共三份),分别取名为pc;x86;arm;然后开始分别编译:

Pc不用装,已经装了qt-sdk-linux-x86-opensource-2010.04.bin该文件是在PC机上跑的。

X86也可以不用装,不用看模拟arm上显示的效果。

编译之后直接下到板子上就可以了。

1.编译嵌入式x86版:

进入x86目录,设置其以QVFB作为显示输出

#sudo./configure-prefix/usr/local/Trolltech/QtEmbedded-4.7.0-embeddedx86-qt-gfx-qvfb-qt-kbd-qvfb-qt-mouse-qvfb

#sudomake

#sudomakeinstall

安装过程比较长,没有碰到过错误。

编译安装PC版中的qvfb:

这里我只是在终端:

输入qvfb,选qv4-dev-tools就可以了,因为我装了QTcreator。

(进入pc/tools/qvfb/目录)

#make

#makeinstall

3.编译arm版:

先安装tslib解压到/home/fmm

下载tslib-1.4.点击tslib1.4

下进入tslib文件夹

./autogen.sh生成配置文件

CC=$ARM_TOOL_PATH/arm-linux-gcc这里两步我没有操作

X=$ARM_TOOL_PATH/arm-linux-g++

./configure--prefix=/usr/local/tslib-1.4--host=arm-linuxac_cv_func_malloc_0_nonnull=yes

make

makeinstall

测试:

x86下测试在root登录

cd/usr/local/Trolltech/QtEmbedded-4.7.0/demos/books

qvfb-width640-height480&

./books-qws

再安装arm

cdarm

./configure-prefix/usr/local/Trolltech/QtEmbedded-4.7.0-arm-opensource-confirm-license-release-shared-embeddedarm-xplatformqws/linux-arm-g++-depths16,18,24-fast-optimized-qmake-pch-qt-sql-sqlite-qt-libjpeg-qt-zlib-qt-libpng-qt-freetype-little-endian-host-little-endian-no-qt3support-no-libtiff-no-libmng-no-opengl-no-mmx-no-sse-no-sse2-no-3dnow-no-openssl-no-webkit-no-qvfb-no-phonon-no-nis-no-opengl-no-cups-no-glib-no-xcursor-no-xfixes-no-xrandr-no-xrender-no-separate-debug-info-nomakeexamples-nomaketools-nomakedocs-I/usr/local/tslib-1.4/include-L/usr/local/tslib-1.4/lib-D__ARM_ARCH_5TEJ__

如果出错用如下输入:

./configure-prefix/usr/local/qte-arm-debug-and-release-qt-zlib-qt-libtiff-qt-libpng-qt-libmng-qt-libjpeg-makelibs-nomakeexamples-nomakedemos-nomakedocs-no-cups-iconv-xplatformqws/linux-arm-g++-embeddedarm-little-endian-qt-freetype-depths8,16,24,32-qt-gfx-linuxfb-no-gfx-transformed-no-gfx-qvfb-no-gfx-vnc-no-gfx-multiscreen-no-dbus-qt-sql-sqlite-qt-kbd-qvfb-qt-kbd-tty-qt-mouse-tslib-no-glib-I/usr/local/tslib-1.4/include-L/usr/local/tslib-1.4/lib-D__ARM_ARCH_5TEJ__

make

sudomakeinstall

等待安装完成!

/optsdk-2010.04b:

/optsdk-2010.04bcreator:

/usr/local/Trolltech/QtEmbedded-4.7.0

ui->textEdit->hide();

=============================================================

测试安装是否正确完成

安装完成后,在/usr/local/Trolltech目录中有三个文件夹:

Qt-4.7.0、QtEmbedded-4.7.0、QtEmbedded-4.7.0-arm。

1测试嵌入式x86:

$source~/.setenv-qt-x86.sh

$qvfb-width800-height600&

$/usr/local/Trolltech/QtEmbedded-4.7.0/demos/books/books-qws

或者:

cd/usr/local/Trolltech/QtEmbedded-4.7.0/demos/books

qvfb-width640-height480&

./books-qws

执行完qvfb;弹出一个类似终端的窗口,窗口背景为黑色,应该相当与模拟器的屏幕

执行完book;窗口背景不再是黑色,屏幕中弹出一个类似于图书管理系统的界面,这就是我们想要看到的!

这一步可能出错,就是找不到qvfb,提示你安装qt4---*****;和qt3---***;直接apt-get安装第二个即可。

sudoapt-getinstallqt3-dev-tools-embedded修复

4、编写环境变量设置文件(方便不同环境切换):

~/.setenv.sh(对应于PC版Qt):

PATH=/usr/local/Trolltech/Qt-4.7.0/bin:

$PATH

LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.7.0/lib:

$LD_LIBRARY_PATH

~/.setenv.sh:

QTEDIR=/usr/local/Trolltech/QtEmbedded-4.7.0

PATH=/usr/local/Trolltech/QtEmbedded-4.7.0/bin:

$PATH

LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.7.0/lib:

$LD_LIBRARY_PATH

~/.setenv.sh:

QTEDIR=/usr/local/Trolltech/QtEmbedded-4.7.0-arm

PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/bin:

$PATH

LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib:

$LD_LIBRARY_PATH

后面的步骤:

5、移植

将PC机上/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib中的库复制到2440的/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib(对应目录复制)。

将PC机上/usr/local/tslib中的库复制到2440的/usr/local。

如果运行时还缺少其他的库,复制方法相同。

为支持触摸屏,开机自动设置环境变量,在2440的/etc/profile中追加:

exportLD_LIBRARY_PATH=/usr/local/lib:

$QTDIR/lib:

$LD_LIBRARY_PATH

exportTSLIB_ROOT=/usr/local/lib

exportTSLIB_TSDEVICE=/dev/input/event0

exportTSLIB_FBDEVICE=/dev/fb0

exportTSLIB_PLUGINDIR=/usr/local/lib/ts

exportTSLIB_CONSOLEDEVICE=none

exportTSLIB_CONFFILE=/usr/local/etc/ts.conf

exportPOINTERCAL_FILE=/etc/pointercal

exportTSLIB_CALIBFILE=/etc/pointercal

exportQWS_MOUSE_PROTO=Tslib:

/dev/input/event0

注:

可用$cat/dev/input/event0测试触摸屏

取消/usr/local/etc/ts.conf中的第一个注释:

#module_rawinput(去掉#,并且该行顶格)

运行/usr/local/bin/ts_calibrate校正触摸屏。

6、程序编译:

(以下编译方式,是把配置文件放到用户目录下,取了3个不同的名字,也可以把它们分别放到三个安装目录下,编译的时候进到目录里边运行。

使用:

我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:

cd/usr/local/Trolltech/Qt-4.7.0

sourcesetenv.sh

然后就可以用qma

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1