`
cjc
  • 浏览: 681019 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

嵌入式Linux实战篇--交叉编译环境的建立(基于ubuntu 8.10)

阅读更多
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

作者:华清远见讲师,曹忠明

在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。本文具体说明了嵌入式交叉编译环境的建立过程和具体的操作步骤,希望能够对各位朋友搭建对应的交叉编译环境有所帮助。

一、所需软硬件环境

n 主机环境

建立交叉编译工具链的主机环境:

Ubuntu 8.10gcc-4.3.2

n Ubuntu 8.10软件环境

保证你的 Ubuntu 8.10 安装了如下的软件:

Bison flex build-essential patch libncurses5-dev

安装这些软件包:

sudo apt-get install Bison flex build-essential patch libncurese5-dev

或直接下载下列deb软件包

bison_13a2.3.dfsg-4build1_i386.deb

build-essential_11.4_i386.deb

flex_2.5.33-10build1_i386.deb

libncurses5-dev_5.6+20071124-1ubuntu2_i386.deb

m4_1.4.8-1build1_i386.deb

patch_2.5.9-5_i386.deb

然后 sudo dpkg –i *.deb 安装这些软件包。

n 相关软件包

本方案所选软件包如下:

gcc-3.4.5.tar.gz

glibc-2.3.6.tar.gz

linux-2.6.26.5.tar.gz

crosstool-0.43.tar.gz

binutils-2.15.tar.gz

glibc-linuxthreads-2.3.3.tar.gz

linux-libc-headers-2.6.12.0.tar.bz2

二、具体工作步骤

1、修改系统配置

1.1Ubuntu 8.10 默认安装的 gcc 版本为4.3.2,这个版本对于语法要求较高,编译会出错,目前不宜选用,于是选择了 gcc-4.1.1 ,但并不需要卸载 gcc-4.3.2

1)第一种方法:直接在终端输入安装gcc-4.1

sudo apt-get install gcc-4.1

2)第二种方法:下载下列软件包:

gcc-4.1_4.1.2-23ubuntu3_i386.deb

gcc-4.1-base_4.1.2-23ubuntu3_i386.deb

cpp-4.1_4.1.2-23ubuntu3_i386.deb

然后sudo dpkg –i *.deb

安装就可以了

sudo rm /usr/bin/gcc (删除GCC,它只是个到gcc-4.3.2的软链接文件)

sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc(建立GCCgcc-4.1的软链接)

1.2、修改sh版本

如果运行

ls -la /bin/sh

看到链接的是 dash ,则请运行以下命令

sudo dpkg-reconfigure dash

选择 no 以删除 dash

此处如果不改好的话,编译时会出现错误

2.解压软件包,并进入该目录,查看重要的脚本文件。

$cd downloads

$tar zxvf crosstool-0.43.tar.gz

$cd crosstool-0.43

在此目录下可以看到有很多.sh脚本和.dat配置文件,每一个支持的处理器都有它所相应的脚本。假如选用demo-arm-softfloat.sh 就是建立目标为支持软浮点的arm交叉编译工具链。

3.修改demo-arm-softfloat.sh

$vim demo-arm-softfloat.sh

修改下面两句

TARBALLS_DIR=$HOME/downloads //表示下载的源码的存放目录

RESULT_TOP=/opt/crosstools //表示生成的工具链的存放目录

为:

TARBALLS_DIR=/home/linux/downloads(源码存放目录)

RESULT_TOP=/home/linux/crosstools(生成工具链目录)

4.修改 gcc-3.4.5-glibc-2.3.6.dat

$ vim gcc-3.4.5-glibc-2.3.6.dat

修改内容为:

BINUTILS_DIR=binutils-2.15

GCC_DIR=gcc-3.4.5

GLIBC_DIR=glibc-2.3.6

LINUX_DIR=linux-2.6.26.5

LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6

5.$ ./ demo-arm-softfloat.sh

这个过程较长(半个小时左右)

6.修改环境变量

修改环境变量有多种方法我们介绍两种

1)第一种方法:在当前终端输入如下内容(这种方法只在当前终端有效):

$export PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:

2)第二种方法:或直接修改/home/linux/.bashrc

进入用户目录:

cd /home/linux

vim .bashrc

添加如下内容:

PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:

然后

source .bashrc

7.执行如下命令

$ arm-softfloat-linux-gnu-gcc -v

显示

Reading specs from /home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/lib/gcc/arm-softfloat-linux-gnu/3.4.5/specs

Configured with: /home/david/downloads/crosstool-0.43/build/arm-softfloat-linux-gnu/gcc-3.4.5-glibc-2.3.6/gcc-3.4.5/configure --target=arm-softfloat-linux-gnu --host=i686-host_pc-linux-gnu --prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu --with-float=soft --with-headers=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/include --with-local-prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long

Thread model: posix

gcc version 3.4.5

ok交叉编译环境创建成功!

8.恢复我们修改的系统配置:

恢复gcc4.3

sudo rm /usr/bin/gcc

sudo ln -s /usr/bin/gcc-4.3 /usr/bin/gcc

重新安装dash

sudo dpkg-reconfigure dash

选择 yes 以重新安装 dash

分享到:
评论

相关推荐

    在Ubuntu8.10 64bit version下用Crosstool-0.43建立ARM-Linux交叉编译环境

    在Ubuntu 8.10 64位版本下建立ARM-Linux交叉编译环境是一项重要的任务,对于进行嵌入式系统开发的工程师来说,这是必不可少的步骤。交叉编译环境允许开发者在宿主机上(这里是Ubuntu 8.10)构建针对目标硬件(ARM...

    ubuntu-8.10-dvd-i386.iso.torrent

    标题中的"ubuntu-8.10-dvd-i386.iso.torrent"表明这是一个与Ubuntu操作系统相关的文件,具体是Ubuntu 8.10(代号Intrepid Ibex)的DVD安装镜像的torrent文件。Ubuntu是由Canonical公司维护的开源Linux发行版,广泛...

    pcre-8.10.zip

    下面将详细介绍PCRE库以及如何在Linux环境下使用它。 **PCRE库详解** 1. **PCRE概念**: PCRE是一个C编写的库,提供了强大的正则表达式匹配功能。它的设计目标是与Perl语言中的正则表达式兼容,因此也称为Perl兼容...

    Alibaba-Dragonwell-8.10.11-aarch64-linux.tar

    首先,你需要从Alibaba的官方仓库或者镜像站点下载"Alibaba-Dragonwell-8.10.11-aarch64-linux.tar"这个压缩包。下载完成后,在终端中,使用`tar`命令解压文件: ```bash tar -xvf Alibaba-Dragonwell-8.10.11-...

    pcre-8.10.tar.gz

    这种格式是Linux和Unix环境中常用的打包方式,用于将多个文件或目录合并成一个单一的压缩文件,方便传输和存储。".tar" 是一种打包工具,它可以把多个文件和目录打包成一个文件,而 ".gz" 则是 GNU zip 压缩,用于...

    wine_1.1.10~winehq0~ubuntu~8.10-0ubuntu1_i386.debwine_1.1.10~winehq0~ubuntu~8.10-0ubuntu1_i386.wine_1.1.10~winehq0~ubuntu~8.10-0ubuntu1_i386.deb

    wine_1.1.10~winehq0~ubuntu~8.10-0ubuntu1_i386.deb

    第 1 章 嵌入式Linux开发环境搭建.pdf

    ### 嵌入式Linux开发环境搭建之Ubuntu 8.10安装与配置 #### 一、概述 本文档详细介绍了如何在Windows XP操作系统环境下,使用虚拟机软件VMware 6.0.2来搭建一个适合进行嵌入式Linux开发的环境。具体包括安装虚拟机...

    qtopia-opensource-src-4.2.3成功交叉编译与移植.doc

    1. **建立交叉编译环境**:确保已安装arm-linux-gcc 3.4.1,这是大多数开发板所需的交叉编译器。 2. **创建工作目录**:创建两个文件夹,一个是`source`,用于存放解压后的Qtopia源代码;另一个是`target`,将来...

    Ubuntu下搭建交叉编译环境

    ### Ubuntu 下搭建交叉编译环境 #### 概述 本文档是沈阳吉大软件公司的一份培训教程,主要介绍如何在Ubuntu系统上搭建一个完整的交叉编译环境。交叉编译是指在一个平台上编译代码,使其能在另一个不同的平台上运行...

    最新版linux kibana-8.10.2-linux-x86-64.tar.gz

    最新版linux kibana-8.10.2-linux-x86_64.tar.gz最新版linux kibana-8.10.2-linux-x86_64.tar.gz最新版linux kibana-8.10.2-linux-x86_64.tar.gz最新版linux kibana-8.10.2-linux-x86_64.tar.gz最新版linux kibana-...

    ubuntu 8.10的配置

    Ubuntu 8.10,代号“Intrepid Ibex”,是一款基于Linux内核的开源操作系统。本篇将详细讲解如何在该版本上进行基本配置,包括联网、软件源设定、安装中文语言支持、NTFS卷的自动挂载以及桌面图标配置。 一、配置...

    最新版linux elasticsearch-8.10.0-linux-x86-64.tar.gz

    最新版linux elasticsearch-8.10.0-linux-x86_64.tar.gz最新版linux elasticsearch-8.10.0-linux-x86_64.tar.gz最新版linux elasticsearch-8.10.0-linux-x86_64.tar.gz最新版linux elasticsearch-8.10.0-linux-x86_...

    nessus-8.10-64.zip

    Kali Linux是一款基于Debian的Linux发行版,专为渗透测试和道德黑客活动而定制。 Nessus-8.10-64.zip这个压缩包文件包含了Nessus的安装包nessus-8.10.deb和一个readme.txt文件。安装包是用于在Kali Linux上部署...

    java-11-openjdk-11.0.8.10-1.el7.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    APR not found apr-1.4.5 apr-util-1.3.12 pcre-8.10

    在Linux环境中,Apache HTTP服务器是广泛应用的Web服务器软件。在安装或配置Apache 2.4时,有时会遇到“APR not found”的错误提示,这表明...正确安装和配置这些依赖库,能够确保Apache服务器在Linux环境下稳定运行。

    linux-fetion_1.0.0-ubuntu_8.10_intrepid_amd64.deb

    linux-fetion_1.0.0-ubuntu_8.10_intrepid_amd64.deb 64位linux下的飞信deb安装包

    UBUNTU8.10安装与配置

    Ubuntu 8.10 安装与配置 本文档将指导您从头开始安装和配置 Ubuntu 8.10操作系统,并对 SSH 服务器和 Samba 文件共享进行配置。 一、Ubuntu 8.10 安装 1. 首先,设置好光盘启动后,放入 Ubuntu 光盘,重启动...

    arm-linux-gcc_4.3.2编译安装过程

    本文将详细介绍如何在Ubuntu 8.10 (amd64)环境下编译安装arm-linux-gcc 4.3.2,这是一个针对ARM处理器的交叉编译器。 首先,确保系统中已经安装了编译所需的依赖软件,包括`texinfo`, `gawk`, `bison`, 和 `flex`。...

Global site tag (gtag.js) - Google Analytics