宅学部落王利涛 2011-04-03
【前言:由于我也是第一次搭建这个环境,整个所用时间不止一周,以及以前用Java觉得还要配置环境变量,好麻烦,但那不过是几分钟的事,后来手动配置php,最快半天,一般我都要用一天的时间,个人比较笨;现在配置个嵌入式qt环境的时间不止一周的时间,真的是整个人都被整疯了,而且到此刻,我还不确定我的环境是否已经配置的完全正确,以下是一些环境搭建过程中碰到的问题,稍微整理了一下,建议在配环境的时候,多看几篇比较完整的环境搭建的文章,准备好前期工作(很多与编译有关的软件包提前装好),对比着做,然后出现错误了再上百度或谷歌去找答案,不要急,慢慢来,一周时间不算很长(经常错了从头再来)】
首先,去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(这一步需要注意已经安装了gcc,g++,并且版本足够高,因为我一开始在Red Hat9的系统里
装完之后,发现red hat自带的gcc版本太低,导致了很多麻烦,最终也没有解决好)
3 下载coss tools包:
http://kegel.com/crosstool/crosstool-0.43.tar.gz
4。 安装cross tools
mkdir ~/downloads 在用户主目录下建立一个下载文件夹,之后安装过程中下载的包都会
自动放到这个文件夹下
sudo apt-get install bison
sudo apt-get install flex
以下4步是必须的,gcc的版本既不能太高也不能太低,只能是3.4;因为要用这个版本来编译内核。
sudo apt-get install gcc-3.4
cd /usr/bin
sudo ln -s gcc-3.4 gcc
sudo rm gcc
正式安装
sudo mkdir /opt/crosstool
sudo chown 当前登录的用户名 /opt/crosstool
tar -zxvf crosstool-0.43.tar.gz
cd crosstool-0.43
vi demo-arm.sh
注释掉#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest
在其后,加上eval `cat arm.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest
注意:cat arm.dat gcc-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$ vi 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
修改交叉编译工具前缀
vi arm.dat
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-linux (该名称为目标名称,我是觉得默认(arm-unknow-linux-gnu)的太长所以修改了,修改了后要注意了相关目录的权限)
TARGET_CFLAGS="-O"
执行下一个命令,系统将开始编译,并下载下面的包:
binutils-2.16.1
gcc-3.3.6
gcc-4.1.1
glibc-2.3.2
linux-2.6.24
linux-libc-headers-2.6.12.0
glibc-linuxthreads-2.3.2
gdb-6.5
这个工程很长需要n小时的时间来
可以ls一下看看里面的文件,里面有一些脚本文件,具体功能可以到http://kegel.com/crosstool上查看FAQ
./demo-arm.sh (会执行很漫长)
执行完后,最后一行提示:
Done!
执行完毕,修改环境变量
安装完成后,默认的安装目录就是开始创建的那个/opt/crosstools/
1.添加环境变量
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,使环境变量生效
$ source ~/.bashrc
3.重启终端。
输入arm后,连续按两下table键,可以看到arm-linux-gcc-4.1.1,说明已经安装成功
$ arm
arm2hpdl arm-linux-gcc arm-linux-objdump
arm-linux-addr2line arm-linux-gcc-4.1.1 arm-linux-ranlib
arm-linux-ar arm-linux-gccbug arm-linux-readelf
arm-linux-as arm-linux-gcov arm-linux-size
arm-linux-c++ arm-linux-gprof arm-linux-strings
arm-linux-c++filt arm-linux-ld arm-linux-strip
arm-linux-cpp arm-linux-nm
arm-linux-g++ arm-linux-objcopy
$ arm
=================================================================
可能出现的问题:
1. crosstool在ubuntu下运行提示 getandpatch.sh: 1: patch: not found
1.执行apt-get update
2.apt-get install patch
2.gcc 版本太低,或者太高都不行,我的ubuntu是10.10,gcc版本4.4.6;需要再安装一个3.4;执行命令的时候可能找不到软件包,需要到软件中心把所有的软件源(9.04;第三方)都勾选上。
=================================================================