您的位置:首页 > 其它

TQ210 交叉编译环境搭建

2015-06-25 08:31 288 查看
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
); 


4000
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
一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: