在ubuntu10.10下安装Qt环境

news/2024/6/29 12:02:34 标签: qt, ubuntu, library, path, 嵌入式, 编译器

      在之前的那些简单的环境配置(交叉编译器等等)完之后,就可以开始配置QtE环境了。

注意点1:在ubuntu下安装QtE环境,如果是使用用户环境下安装的话,以后再编译程序的时候,直接在用户环境下编译就可以,如果是在root下安装的,那么以后编译程序就得在root环境下编译。

注意点2:安装QtE的版本要和交叉编译器的版本想匹配。我这边的使用的QtE版本的4.6.3,交叉编译器的版本是4.4.3

一、安装Qt Creator

1、去QT的官网(http://qt.nokia.com/downloads)

下载文件:直接下载 Qt SDK for Linux/X11 32-bit** (422 MB) (这样比较简便,虽然可能占的空间要大一点)

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

chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin

./qt-sdk-linux-x86-opensource-2010.05.1.bin

 二、搭建嵌入式QT环境;

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

Qt libraries 4.6.3 for embedded Linux (199 MB)

http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.3.tar.gz

Qt libraries 4.6.3 for Linux/X11(199 MB)

http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.3.tar.gz

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

下载下来的文件名为:

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

解压 tar zxvf qt-everywhere-opensource-src-4.6.3.tar.gz 

把解压后的文件再复制两份(一共三份),

分别取名为pc; x86; arm;

然后开始分别编译:

 

1.编译PC, 在ubuntu下是会缺少几个开发包的,这边先安装这些包:

sudo apt-get install libX11-dev

sudo apt-get install libXext-dev

sudo apt-get install libXtst-dev

sudo apt-get install libxrender-dev

cd pc

sudo ./configure(选 o  再选 yes)

sudo make

sudo make install

 

2. 编译嵌入式x86版:

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

#./configure -prefix /usr/local/Trolltech/QtEmbedded-x86 -embedded x86 -qvfb

# make

# make install

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

编译安装PC 版中的 qvfb:

进入pc/tools/qvfb/目录

#make

#make install

 2.1测试嵌入式 x86 :

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

qvfb -width 640 -height 480 &

./books -qws

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

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

这一步可能出错,就是找不到qvfb,提示你安装qt4---*****;和qt3---***;

直接apt-get 安装第二个即可。

sudo apt-get install qt3-dev-tools-embedded

修复测试安装是否正确完成

 

3、安装tslib(必须安装)

 下载tslib-1.4.

./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-linux ac_cv_func_malloc_0_nonnull=yes

make

make install

 

4. 编译arm版:

 cd arm

./configure -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp (qte版本不一样的话,configure后面的参数也不一样,这个要注意)

make

sudo make install

等待安装完成!

 

如果出现问题如下:

make之后:

/usr/bin/ld: .obj/release-shared/harfbuzz-buffer.o: Relocations in generic ELF (EM: 40)

/usr/bin/ld: .obj/release-shared/harfbuzz-buffer.o: Relocations in generic ELF (EM: 40)

/usr/bin/ld: .obj/release-shared/harfbuzz-buffer.o: Relocations in generic ELF (EM: 40)

/usr/bin/ld: .obj/release-shared/harfbuzz-buffer.o: Relocations in generic ELF (EM: 40)

/usr/bin/ld: .obj/release-shared/harfbuzz-buffer.o: Relocations in generic ELF (EM: 40)

/usr/bin/ld: .obj/release-shared/harfbuzz-buffer.o: Relocations in generic ELF (EM: 40)

.obj/release-shared/harfbuzz-buffer.o: could not read symbols: File in wrong format

collect2: ld returned 1 exit status make[1]: *** [../../lib/libQtCore.so.4.6.3]

错误 1 make[1]:正在离开目录 `/opt/arm/src/corelib' make: *** [sub-corelib-make_default-ordered]

 

说明你的qte版本和交叉编译器的版本不相符合,需要修改其中一个版本,或者说你configure后面的参数设置错误

 

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

Qt-4.6.3、QtEmbedded-4.6.3、QtEmbedded-4.6.3-arm。

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

(这部分可以不做,如果不做的话,在编译程序的时候,要指明是使用哪个qmake)

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

 PATH=/usr/local/Trolltech/Qt-4.6.3/bin:$PATH

LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.6.3/lib:$LD_LIBRARY_PATH

 

~/.setenv.sh:(x86版)

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

PATH=/usr/local/Trolltech/QtEmbedded-4.6.3/bin:$PATH

LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.6.3/lib:$LD_LIBRARY_PATH

 

~/.setenv.sh: (arm版)

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

PATH=/usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin:$PATH

LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib:$LD_LIBRARY_PATH

 

5、移植

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

 5.2将 PC 机上 /usr/local/tslib 中的库复制到2440的 /usr/local 。如果运行时还缺少其他的库,复制方法相同。

5.3为支持触摸屏,开机自动设置环境变量,

在2440的 /etc/profile中追加:

 

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

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_PLUGINDIR=/usr/local/lib/ts

export TSLIB_CONSOLEDEVICE=none

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

export POINTERCAL_FILE=/etc/pointercal

export TSLIB_CALIBFILE=/etc/pointercal

export QWS_MOUSE_PROTO=Tslib:/dev/input/event0 

 

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

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

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

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

 

 6、程序编译:

6.1 以下编译方式,是把配置文件放到用户目录下,取了3个不同的名字,也可以把它们分别放到三个安装目录下,编译的时候进到目录里边运行。使用:我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11: cd /usr/local/Trolltech/Qt-4.6.3 source setenv.sh

然后就可以用qmake designer等工具了. )

 

PC版:

$ make distclean

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

$ qmake

 $ make

 

arm 版:

$ make distclean

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

$ qmake

$ make

 

6.2 如果之前的文件配置没做的话,那么在以后的编译的时候,

pc版:

make clean

qmake –project

qmake

make

 

x86版

make clean

/usr/local/ Trolltech / QtEmbedded-4.6.3/bin/qmake –project

/usr/local/ Trolltech / QtEmbedded-4.6.3/bin/qmake

make

 

arm版

make clean

/usr/local/ Trolltech / QtEmbedded-4.6.3-arm/bin/qmake –project

/usr/local/ Trolltech / QtEmbedded-4.6.3-arm/bin/qmake

make

 

推荐几篇,我配环境时,觉得不错的文章:

 http://blog.csdn.net/PenglueR/archive/2009/12/10/4981753.aspx

http://www.xici.net/#u13572321/d118122274.htm

http://hi.baidu.com/jesserei/blog/item/861c201e18b1cd04314e1500.html


http://www.niftyadmin.cn/n/488528.html

相关文章

明日答辩

明天是大学毕业设计答辩,希望顺利。。。 犀利老头不要为难我。。其他老师要把我做浮云哦。。。

如何在正文插入页眉页脚 要求奇偶页不一样

一、从第3页开始插入页码,起始页为1。WORD20031、将光标定位在第2页末尾处,点击“插入——分隔符——(分节符类型)下一页”。按确定。2、点击“视图——页眉和页脚”,将光标定位到第3页(即第2节&#xff09…

我的第一次检讨书

检讨书 尊敬的学院领导: 这份检讨书是关于我在6月13日没有事先请假而擅自外出旅游的过失的检讨。 在毕业设计答辩完后,想放松一下自己,同时也考虑到刚刚答辩完有几天空闲的时间,就选择了去江西三清山,给自己定了一个…

ubuntu 10.10 更新源

1.sudo cp /etc/apt/sources.list /etc/apt/sources.list.bk sudo gedit /etc/apt/sources.list 编辑你的源列表,将原来的内容全部删除,添加下面列表中最适合你的源(注意不要全部添加),选择一个最合适你的即可&…

吼吼

没事在这边吼吼^ ^

C语言的函数调用规则

C语言的函数调用规则:所有参数都是传值调用。但是我们平时所说的传址调用是什么呢?这就是我们这些所要 说明的。C函数的所有参数均以“传值调用”方式进行传递,这意味着函数将获得参数值的一份拷贝。这样,函数可以放心修改这个拷…

==和=

在编程中,发现原来 a3;这条语句原来不会报错~ 和这个问题,在初学的时候,就看到书山一直强调,到现在还犯这个错误,真的不行啊

作为函数参数的多维数组

C语言的数组值得注意的地方有两点: 1、C语言中只有一维数组,而且数组的大小必须在编译期就作为常数确定下来。然而,C语言中的数组的元素可以是任何类型的对象,当然也可以是另外一个数组。这样,要“仿真”出一个多维数组…