// 创建目录

/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

转载于:https://www.cnblogs.com/tangshiguang/p/6735727.html

rtems的GNU(GCC)编译环境配置相关推荐

  1. Linux本地yum源配置以及使用yum源安装gcc编译环境

    本文档是图文安装本地yum源的教程,以安装gcc编译环境为例. 适用范围:所有的cetos,红帽,fedroa版本 适用人群:有一点linux基础的小白 范例系统版本:CentOS Linux rel ...

  2. VScode+gcc编译环境搭建

    VScode+gcc编译环境搭建 VScode下载 GCC安装 可能出现的问题 一些IDE集成开发环境占用内存大,体量大,比如Visual studio. Visual Studio Code (简称 ...

  3. linux 编译opencl,OpenCL编译环境配置(VS+Nvidia)

    英伟达的显卡首先要下载安装CUDA开发包,可以参考这里的步骤:   VS2015编译环境下CUDA安装配置 安装好CUDA之后,OpenCL的配置就已经完成了80%了,剩下的工作就是把OpenCL的路 ...

  4. makefile:带你了解一种常用于GNU gcc编译的工具语言

    摘要:该文章主要介绍makefile,一种常用语GNU gcc编译的工具语言,同时LiteOS也是利用该文件对工程项目进行make构建生成执行文件的. LiteOS源码中使用makefile进行文件的 ...

  5. 团队环境搭建:MTK平台,PTK5.1、Supernova编译环境配置

    团队环境搭建:MTK平台,外销TV,PTK5.1.Supernova编译环境配置 文章目录 团队环境搭建:MTK平台,外销TV,PTK5.1.Supernova编译环境配置 一.前言 二.硬件环境要求 ...

  6. STM32 gcc编译环境搭建

    STM32 gcc编译环境搭建 标签(空格分隔): stm32 gcc Makefile 说在前面的话 gcc编译器兼容Windows.Linux和MAC,可自行去官网下载,此处提供参考链接:http ...

  7. Hi3516EV200 编译环境配置及交叉编译软件包

    原文地址:Hi3516EV200 编译环境配置及交叉编译软件包 - WindSpiritIT 基础信息 OS: Ubuntu 16.04 xenial SDK 版本: Hi3516EV200R001C ...

  8. Fluent UDF编译环境配置 VS2019

    Fluent UDF编译环境配置 VS2019 环境配置 问题记录 继续记录调试过程 仅用一个host 仅用一个node 两个都放进去 换个电脑继续报错 记录错误 环境配置 生成PATH文件的,有的没 ...

  9. Windows下的gcc/gc++编译环境配置

    最近有很多算法设计的网络大赛,其中大部分的C/C++都是采用Linux下的GCC/G++编译器.配置GCC编译器大概有这几种途径:装Linux系统.装Linux虚拟机或者在Windows环境下模拟Li ...

最新文章

  1. [转] Spring Boot特性
  2. OpenGL 重复渲染
  3. java buffer 记事本_Java实现记事本|IO流/GUI
  4. 如何分享文件_分布式文件存储系统如何分享文件
  5. Java实现简易的文件的迁移器
  6. python多行语句_python多行语句
  7. ORACLE数据库多表关联查询效率问题解决方案
  8. N划分成若干个奇正整数之和的分法有多少种---动态规划
  9. 8.python之面相对象part.6(反射__call__,__setattr__,__delattr__,__getattr__)
  10. 黑苹果OC引导添加AX200无线网卡驱动
  11. 阿里巴巴编码规范习题
  12. win10怎么解除bitlocker加密?
  13. mysql 学习指南
  14. java poi导出下载excel报表或下载到指定路径
  15. vue项目中-打印页面中部分区域的内容
  16. GetDC和BeginPaint
  17. 浏览器默认开启无痕模式
  18. java古诗_java抓取古诗文的单线程爬虫
  19. 随机森林实现及调参的R与Python对比——以泰坦尼克幸存者数据为例
  20. android开发系列之性格测试,性格色彩测试android程序开发之十--输出结果

热门文章

  1. JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(推荐七)
  2. 《Python核心编程》第二版第36页第二章练习 续一 -Python核心编程答案-自己做的-...
  3. 测试php程序运行时间
  4. shell中#*,##*,#*,##*,% *,%% *的含义及用法
  5. 学生时代的最后一个新年,请一定要做这五件事...
  6. windows 8 突然不能上网 LSP 二种修复方法
  7. 【Linux】Centos7安装之后,双系统的情况下,怎么能在CentOS7下访问Windows的磁盘...
  8. MATLAB 数据分析方法(第2版)1.3 MATLAB基本语法
  9. [LeetCode]--5. Longest Palindromic Substring
  10. 第二阶段个人总结06