rtems的GNU(GCC)编译环境配置
// 创建目录
/home/shael/rtems/build //存放解压包和编译包目录
/home/shael/rtems/archive //存放源码包目录
/home/shael/rtems/tools //存放编译的交叉包目录
/home/shael/rtems/src //存放rtems源码
// 下载ftp://ftp.rtems.com/pub/rtems/SOURCES/4.10/
gcc-4.3.2.tar.bz2
gcc-4.3.2-20080910.diff
binutils-2.20.tar.bz2
newlib-1.18.0.tar.gz
newlib-1.18.0-rtems4.10-20130320.diff
rtems-4.10.2.tar.bz2
// 修改参数
在build文件夹下新建set-rtems.sh文件,输入一下内容(这里的shael根据实际情况更改,arm-rtems4.10也要根据平台修改)
#! /bin/sh
export PRJECT=rtems
export PRJROOT=/home/shael/${PRJECT}
export TARGET=arm-rtems4.10
export PREFIX=${PRJROOT}/tools/rtems-4.10
export TARGET_PREFIX=${PREFIX}/${TARGET}
export PATH=${PREFIX}/bin:${PATH}
pwd
cd $PRJROOT
$cd build
$chmod +x ./set-rtems.sh
备注:给set-rtems.sh加上可执行权限需要用到root权限。
$source ./set-rtems.sh
备注:该命令使得set-rtems.sh中的环境变量在当前shell中可见,也可以使用
$. ./set-rtems.sh
注意:两个点之间至少要有一个空格
// 编译安装binutils
$cd build
$tar xvf ../archive/binutils-2.20.tar.bz2
$mkdir b-binutils
$cd b-binutils
$../binutils-2.20/configure --target=$TARGET --prefix=$PREFIX --disable-werror
$make
$make install
***********************************************************************
错误1:
// 注意有可能遇到以下错误,安装texinfo
// make[2]: *** [info-recursive] 错误 1
错误2(提示变量被设定但未被使用):
../../binutils-2.20.1/bfd/compress.c: 在函数‘bfd_uncompress_section_contents’中:
../../binutils-2.20.1/bfd/compress.c:54:45: 错误: 形参‘buffer’被设定但未被使用 [-Werror=unused-but-set-parameter]
../../binutils-2.20.1/bfd/compress.c:54:68: 错误: 形参‘size’被设定但未被使用 [-Werror=unused-but-set-parameter]
cc1: all warnings being treated as errors
make[4]: *** [compress.lo] 错误 1
make[4]:正在离开目录 `/home/rtems/tools/build-binutils/bfd'
make[3]: *** [all-recursive] 错误 1
make[3]:正在离开目录 `/home/rtems/tools/build-binutils/bfd'
make[2]: *** [all] 错误 2
make[2]:正在离开目录 `/home/rtems/tools/build-binutils/bfd'
make[1]: *** [all-bfd] 错误 2
make[1]:正在离开目录 `/home/rtems/tools/build-binutils'
make: *** [all] 错误 2
解决方法:$../binutils-2.20/configure --target=$TARGET --prefix=$PREFIX --disable-werror
***********************************************************************
// 编译安装gcc
$cd build
$tar xvf ../archive/gcc-4.3.2.tar.bz2
$cd gcc-4.3.2
$patch -p1 <../../archive/gcc-4.3.2-20080910.diff //应用补丁
$find . -name "*.rej" -print //如果没有扩展名为.rej的文件,说明补丁应用成功
$cd build
$tar xvf ../archive/newlib-1.18.0.tar.gz
$cd newlib-1.18.0
$patch -p1 <../../archive/newlib-1.18.0-rtems4.10-20091009.diff //应用补丁
$find . -name "*.rej" -print //如果没有扩展名为.rej的文件,说明补丁应用成功
$cd gcc- 4.3.2
$ln -s ../newlib-1.18.0/newlib .
$mkdir b-gcc
$cd b-gcc
$../gcc-4.3.2/configure --target=$TARGET --with-gnu-as --with-gnu-ld --with-newlib --verbose --enable-threads --enable-languages="c,c++" --prefix=$PREFIX
在给gcc “configure”的时候,如果有提示没有找到mpfr,就在configure时加上--with-mpfr=/usr/local/mpfr-2.4.2(路径指向根据自己的安装地址定),同理gmp和mpc
$make all
$make info
$make install
!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!如果配置gcc的时候出现各种奇葩错误,建议不要费功夫去挣扎了,按步骤重新来一次吧。。。。笔者也经常碰到各种奇葩错误,也挣扎去解决,结果睡一觉按步骤重新来过,就莫名其妙的好了,这样已经不止一次了。。。基本第一次都没成功过。
不过主要的思想就是分为俩步,第一步:m4、texinfo、gmp、mpfr、mpc安装,第二步binutils、newlib、gcc。记住每次安装第二步时看看gmp、mpfr、mpc的路径是否添加!set-rtems.sh是否运行了一次,以后装好了要用arm-rtems***-gcc也要运行一下set-rtems.sh,而且只能在同一个终端窗口。
******************************************************************
// 注意configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
// 出现这个问题说明电脑上没有这三个,不过在安装这个之前应该确认下有没有安装m4,没有的话得先安装m4(configure之后没有生成makefile的请安装m4.。。)
// 安装gmp
$tar xvf gmp-4.3.2.tar.bz2
$cd gmp-4.3.2
$./configure --prefix=/usr/local/gmp-4.3.2
$make
$make check (这一步用来确保编译正确)
$sudo make install
// 安装mpfr
$tar xvf mpfr-2.4.2.tar.bz2
$cd mpfr-2.4.2
$./configure --with-gmp=/usr/local/gmp-4.3.2(此处的路径应该和gmp安装的路径一样)--prefix=/usr/local/mpfr-2.4.2
$make
$make check //笔者在check mpfr的时候是148全部fail了。。。。,mpc也是,后来索性不管了直接make install了
$sudo make install
// 安装mpc(后来看到一些文章发现貌似不用装mpc。。。总之怕出错还是装了。。。)
$tar xvf mpc-0.8.1.tar.gz
$cd mpc-0.8.1
$./configure --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2(此处的路径应该和gmp、mpfr安装的路径一样)--prefix=/usr/local/mpc-0.8.1
$make
// 装好后(注意:这里的配置只是临时的,每次安装gcc的时候先输入echo $LD_LIBRARY_PATH看看是否有下面这三个路径)
export LD_LIBRARY_PATH=/usr/local/gmp-4.3.2:/usr/local/mpfr-2.4.2:/usr/local/mpc-0.8.1
在给gcc “configure”的时候,如果有提示没有找到mpfr,就在configure时加上--with-mpfr=/usr/local/mpfr-2.4.2,同理gmp和mpc
rtems的GNU(GCC)编译环境配置的更多相关文章
- Linux本地yum源配置以及使用yum源安装gcc编译环境
本文档是图文安装本地yum源的教程,以安装gcc编译环境为例. 适用范围:所有的cetos,红帽,fedroa版本 适用人群:有一点linux基础的小白 范例系统版本:CentOS Linux rel ...
- CentOS离线安装GCC编译环境
gcc编译环境rpm下载 安装相关的rpm包,具体版本可能随时间变化而变化,可以去以下地址下载: 重庆大学镜像:http://b.mirrors.lanunion.org/CentOS/中国科学技术大 ...
- linux内核编译环境配置
linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...
- Syslinux编译环境配置简要步骤
由于毕业设计要做一个加密U盘的LINUX,需要修改一sysylinux引导程序,在网上很少有关于syslinux编译环境配置的文章,在此简要总结一下,发出来共享. 需要的软件: 1. vmware ...
- Android编译环境配置
Android编译环境配置 网上关于Android编译环境配置的整理资料有不少,经整理亲测后,希望能给需要的亲们提供帮助. 主要分为四步: 1.安装JDK(Java Standard Edition ...
- RedHat 5下安装gcc编译环境的具体步骤
RedHat 5下安装gcc编译环境的具体步骤 在RHEL5系统中默认不安装linux系统中的开发编译环境(gcc),此软件包安装时依赖其他包较多 在以前使用RHEL4时可以通过如下命令安装: rpm ...
- mac OS(OS X)的OI编译环境配置指南
编译环境:gdb+Atom 如何安装gdb: http://logic0.blog.163.com/blog/static/1889281462014183271283/ Atom下载地址: ht ...
- Android编译环境配置(Ubuntu 14.04)
常识:编译Android源代码需要在Linux系统环境下进行... 在Linux中,开发Android环境包括以下需求:Git.repo.JDK(现在一般使用OpenJDK)等:其中,Git用于下载源 ...
- Berkeley DB (VC6.0 编译环境配置)
操作系统:winxp VC环境:VC6.0 必需文件:Berkeley DB安装文件(db-.msi) 下载地址:http://www.oracle.com/technology/software/p ...
随机推荐
- AngularJs学习笔记2-控制器、数据绑定、作用域
上次分享完该系列文章后有朋友也建议说1.x版本除了维护也没有必要学习,可以学习2.0开始学习,我也知道1.x无论是从性能还是架构上都没有2.x好,但是我想因为现在也有一些朋友还在用1.x版本,因为1. ...
- Servlet Filter 中init和destroy问题
测试源码如下: package com.FilterTest.Filter; import java.io.IOException; import javax.servlet.Filter; impo ...
- Jenkins+Git配置
Jenkins+Git配置 一.GitHub上配置 前提:Jenkins能正常打开 将本地文件上传到GitHub上:进入终端 cd Documents cd project git clone htt ...
- jmeter- Java-POST接口使用get与json格式传参
在测试过程中发现各种接口传参形式,今天就来说说小编遇到的一种,接口请求方式为POST:URL传参以GET形式并携带JSON 可能这样诉说有不少同学不太理解. 如图: 上图所示就是一般get请求传参格式 ...
- vue中watched属性
watched属性,vue中的观察属性,可用来监听一个值的变化 默认有两个参数,新值,旧值 data (){ return { currentCity: "深圳" } } watc ...
- ionic时间插件ion-datetime-picker
https://github.com/katemihalikova/ion-datetime-picker
- docker在Centos上的安装
Centos6安装docker 系统:centos6.5 内核:3.10.107-1(已升级),docker对RHEL/Centos的最低内核支持是2.6.32-431,epel源的docker版本推 ...
- CentOS安装配置MySql数据库
CentOS版本7.2,MySql版本5.7 1.下载MySql安装源 wget https://dev.mysql.com/get/mysql57-community-release-el7 ...
- maven快速上手
1.maven安装 首先下载apache-maven-3.3.3-bin.zip(版本可以自己根据自己想要的下载). 解压后如下: 接下来配置系统环境变量: 到此,maven安装好了,接下来输入 ...
- pygal的简单使用
pygal的简单使用 例子来自此书: <Python编程从入门到实战>[美]Eric Matthes pygal是一个SVG图表库.SVG是一种矢量图格式.全称Scalable Vecto ...