TQ210

开发板

QT

交叉编译环境安装总结

 

 

系统环境:

Ubuntu 12.04  64bit 

 

 

       TQ 210

开发板

 

 

一,总体流程:

 

二,

Ubuntu12.04

下安装

tslib 1.4 

出现各种问题汇总:

 

出现

./autogen.sh: 4: ./autogen.sh: autoreconf: not found

的错误解决

 

 

我看教程说的是直接执行命令

 ./autogen.sh

就可以了,后来我执行出错:

 

./autogen.sh: 4: ./autogen.sh: autoreconf: not found 

 

上网查了查说是我的版本没有安装

automake

工具。解决方法如下

 

sudo apt-get install autoconfautomakelibtool 

这时候再次执行

./autogen.sh

就不出错了

 

 

 

在执行

make

的时候出现:

 

在函数

‘open’

 

    

内联自

‘main’

 ts_calibrate.c:227:11: 

/usr/include/i386-linux-gnu/bits/fcntl2.h:51:24: 

错误:调用

‘__open_missing_mode’

,声明有错

误属性:

open with O_CREAT in second argument needs 3 arguments 

在函数

‘open’

    

内联自

‘main’

 ts_calibrate.c:229:11: 

/usr/include/i386-linux-gnu/bits/fcntl2.h:51:24: 

错误:调用

‘__open_missing_mode’

,声明有错

误属性:

open with O_CREAT in second argument needs 3 arguments 

 

 tests

目录下打开

ts_calibrate.c,

修改

 227

229

 

 

解决方法

 

gcc

新版本编译器对语法检查严格,在源文件

 ./tests/ts_calibrate.c

 

// 

源文件

 

// if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) { 

//     cal_fd = open (calfile, O_CREAT | O_RDWR); 

// } else { 

//   cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR); 

// } 

// 

需要更改成如下形式

 

if

 ((calfile = getenv(

"TSLIB_CALIBFILE"

)) != NULL) { 

cal_fd = open (calfile, O_CREAT | O_RDWR, 

0777

); 

else

 { 

cal_fd = open (

"/etc/pointercal"

, O_CREAT | O_RDWR, 

0777

); 

} 保存后重新编译即可


 

 

三,

Arm-linux-gcc

交叉编译器安装详解:

 

 

1

,天嵌入提供的

4.4.6

交叉编译器的位置;

 

2

,解压该安装包:

sudo tar -xjvf ~~~~~~~~~ -C / 

3

,他会解压到:

/opt/EmbedSky/4.4.6

路径下,可以看到里面有个

bin 

4

,添加环境变量:

 

 

vi /etc/profile 

 

在最后添加:

export PA

TH=$PATH:/opt/EmbedSky/4.4.6/bin 

 

wq

保存退出后

 

 

source /etc/profile 

 

然后重启电脑

 

5

,输入

arm-linux-gcc -v

可能会提示如下错误:

 

 

遇到这种情况请先检查自己的路径有没有出错,如果确定没有;如果

Ubuntu

系统是

64

位,那么很可能就是如下的原因:





 


 

安装完这个之后再输入

arm-linux-gcc -v

应该就没有问题了。

 

 

至此,交叉编译器安装完成。

 

 

 

四,编译

qt-4.5 for arm

 

 

在你

arm-linux-gcc

配置好之后,做到这里,我们就可以开始编译

qt-4.5 for arm

了!

 

1

,解压

qt-4.5

源码包:

sudo tar xjvf qt-4.5_for_TQ210_V1.0.tar.bz2 -C / 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

,解压好了之后,我们就会在

/opt/EmbedSky/qt-4.5

里面发现一下各个文件

 





 


 

 

 

 

 

 

 

 

 

 

 

 

 

第一个是源码包,第二个是天嵌编译好的

arm

开发板上

qt-4.5

的脚本文件,第三个可以不用

管,

(如果需要你可以去

pdf

中查看下)

,本来编译

arm

上的

qt-4.5

正常的做法是进源码包,

然后控制执行

./configure 

的参数的,但是这里既然有官方脚本,那我们就不自己输了。

 

 

3

,执行脚本

sudo ./arm_qt4.5_build

,我们很可能会遇到这个问题。

 

 

 

The tslib functionality test failed! 

 

You might need to modify the include and library search paths by editing 

 

QMAKE_INCDIR and QMAKE_LIBDIR in 

 

/opt/EmbedSky/qt-4.5/qt-embedded-linux-opensource-src- 

4.5.0/mkspecs/qws/linux-arm-g++. 

 

Build Qt4.5 library now, please wait ... 

 

gmake: *** 

没有指明目标并且找不到

makefile

。停止。

 

 

Install Qt4.5 library now, please wait ... 

 

gmake: *** 

没有规则可以创建目标

“install”

。停止。

 

 

这个时候我们首先输入

arm-linux-gcc -v

查看自己交叉编译器是否正常,确定正常后再执行

脚本如果还是发现这个错误。这个时候需要做的是

 

 

先转化为

root

用户:

su 

 root 

 

然后再执行脚本:

./arm_qt4.5_build 

虽然不知道是为什么,但是这样的确是可以了。

 

五,配置

Ubuntu

QT-4.5

的环境:

 

 

正常情况下,我们的系统已经装好了

PC

上的

Qt

版本,譬如我这里装好了

qt-4.8.5

,我们要

装用于开发板的

qt-4.5

,应该在装完上一步之后进行

Qtcreater

进行配置,但是我们的这里

Qtcreater

版本好像是太高的原因,添加

qt-4.5

qmake

路径时候老是会出错,所以我的做法

是修改环境为

qt-4.5

,然后通过纯代码来编译,现在打开终端输入

which qmake

,可以看到

qmake

的信息是我们原先装的

qt-4.8.5

。接下来我们来添加

qt-4.5

的环境变量:

 

 

 

 

 

 

 

 

 





 


 

 

 

修改

/etc/profile

sudo vi /etc/profile 

在最后我们添加如下内容:

 

 

 

具体路径要根据自己的实际情况而定,

 

然后老规矩:

source /etc/profile 

 

 

 

 

 

 

这个时候再查看:

whichqmake 

 

 

 

 

 

 

 

 

 

 

 

 OK

!可以了,不过这里需要指出的这样配置的

qmake

只适用于当前的终端窗口,你一但关

闭这个终端窗口或者重启,

qmake

又会变成了

4.8.5

。所以呢,每次需要

qt-4.5

编译之前都需

source /etc/profile

一下