嵌入式Linux开发环境搭建-2-制作编译工具

本文详细介绍了如何在Ubuntu系统中搭建嵌入式Linux开发环境,包括安装基本开发环境如build-essential,bison和flex,以及如何下载和编译crosstool以创建针对ARM9的arm-linux-gcc交叉编译工具链。在过程中,提到了可能遇到的错误和解决方法,如修改dash选项,以及在编译过程中需要的软件包和版本。
摘要由CSDN通过智能技术生成

一、安装基本开发环境

使用光盘安装的Ubuntu是一个比较精简的Linux发行版,它缺乏一些开发用的工具、文件,比如标准C库的头文件、g++编译器等。因此需要检查安装这些工具文件,使用命令安装基本的开发环境:
首先下载bison flex build-essential这些软件:

$:' sudo apt-get install bison
$:' sudo apt-get install flex
$:' sudo apt-get install build-essential

1.1 build-essential安装

Ubuntu 上一般自带的,不需要安装:
linux操作系统上面开发程序, 光有了gcc 是不行的
它还需要一个 build-essential软件包
作用是提供编译程序必须软件包的列表信息

也就是说 编译程序有了这个软件包
它才知道 头文件在哪 才知道库函数在哪
还会下载依赖的软件包 最后才组成一个开发环境
当然 build-essential包 安装时 需要的依赖包 有些你用不上

软件包: build-essential 安装方法:
sudo apt-get install build-essential

root@pc:/home/jszy# sudo apt-get install build-essential
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
build-essential 已经是最新版 (12.1ubuntu2)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 12 个软件包未被升级。

1.2 bison和flex

flex 和 bison 生成的词法和语法分析器就是干的这两件事:flex 生成的词法分析器将输入拆分成一个一个的记号(token),bison 生成的语法分析器根据已有的规则,分析这些 token 的组合,是否是符合语法规范的。
sudo apt-get install bison flex bison和flex分别是语法、词法分析器。

root@pc:/home/jszy# sudo apt-get install bison flex
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  libbison-dev libfl-dev libsigsegv2 m4
建议安装:
  bison-doc
下列【新】软件包将被安装:
  bison flex libbison-dev libfl-dev libsigsegv2 m4
升级了 0 个软件包,新安装了 6 个软件包,要卸载 0 个软件包,有 12 个软件包未被升级。
需要下载 1,108 kB 的归档。
解压缩后会消耗 3,101 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libsigsegv2 amd64 2.10-4 [14.1 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 m4 amd64 1.4.17-5 [195 kB]
获取:3 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libfl-dev amd64 2.6.0-11 [12.5 kB]
获取:4 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 flex amd64 2.6.0-11 [290 kB]
获取:5 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libbison-dev amd64 2:3.0.4.dfsg-1 [338 kB]
获取:6 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 bison amd64 2:3.0.4.dfsg-1 [259 kB]
已下载 1,108 kB,耗时 8秒 (129 kB/s)                                           
正在选中未选择的软件包 libsigsegv2:amd64。
(正在读取数据库 ... 系统当前共安装有 218186 个文件和目录。)
正准备解包 .../libsigsegv2_2.10-4_amd64.deb  ...
正在解包 libsigsegv2:amd64 (2.10-4) ...
正在选中未选择的软件包 m4。
正准备解包 .../archives/m4_1.4.17-5_amd64.deb  ...
正在解包 m4 (1.4.17-5) ...
正在选中未选择的软件包 libfl-dev:amd64。
正准备解包 .../libfl-dev_2.6.0-11_amd64.deb  ...
正在解包 libfl-dev:amd64 (2.6.0-11) ...
正在选中未选择的软件包 flex。
正准备解包 .../flex_2.6.0-11_amd64.deb  ...
正在解包 flex (2.6.0-11) ...
正在选中未选择的软件包 libbison-dev:amd64。
正准备解包 .../libbison-dev_2%3a3.0.4.dfsg-1_amd64.deb  ...
正在解包 libbison-dev:amd64 (2:3.0.4.dfsg-1) ...
正在选中未选择的软件包 bison。
正准备解包 .../bison_2%3a3.0.4.dfsg-1_amd64.deb  ...
正在解包 bison (2:3.0.4.dfsg-1) ...
正在处理用于 install-info (6.1.0.dfsg.1-5) 的触发器 ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在处理用于 libc-bin (2.23-0ubuntu11) 的触发器 ...
正在处理用于 doc-base (0.10.7) 的触发器 ...
Processing 33 changed doc-base files, 1 added doc-base file...
正在设置 libsigsegv2:amd64 (2.10-4) ...
正在设置 m4 (1.4.17-5) ...
正在设置 libfl-dev:amd64 (2.6.0-11) ...
正在设置 flex (2.6.0-11) ...
正在设置 libbison-dev:amd64 (2:3.0.4.dfsg-1) ...
正在设置 bison (2:3.0.4.dfsg-1) ...
update-alternatives: 使用 /usr/bin/bison.yacc 来在自动模式中提供 /usr/bin/yacc (yacc)
正在处理用于 libc-bin (2.23-0ubuntu11) 的触发器 ...

4.3 安装C函数库的man手册

sudo apt-get install manpages-dev

root@pc:/home/jszy# sudo apt-get install manpages-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
manpages-dev 已经是最新版 (4.04-2)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 12 个软件包未被升级。

安装ctags代码阅读工具

sudo apt-get install ctags

二、安装交叉编译工具链

因为本次交叉编译是为了在arm9架构的处理器s3c2440开发板上用,我们要创建的是针对于arm9tdmi架构的arm-linux-gcc,应用crosstool提供的模板
首先约定:在主机上执行的命令提示符为“$”;在主机中启动scratchbox,然后在scratchbox里执行的命令,提示符为“〉”;在单板上执行的命令,提示符为”#”。
参考知识:
linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
linux:自己制作编译工具链crosstool-0.43 - 嵌入式软件开发基地 - CSDN博客

2.1 相关软件下载

在windows系统下,下载如下软件:
【crosstool-0.43.tar.gz】
位置:http://kegel.com/crosstool/
下载:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值