【buildroot-2011.11】You may have to install 'g++' on your build machine

buildroot - 2011.11 交叉编译器制作时,提示如下错误:

“You may have to install ‘g++‘ on your build machine”

还提示:toolchain/dependencies/dependencies.sh 121 Error

打开toolchain/dependencies/dependencies.sh,有如下一段脚本

# check for host CXX
CXXCOMPILER=$(which $HOSTCXX 2> /dev/null)
if [ -z "$CXXCOMPILER" ] ; then
    CXXCOMPILER=$(which c++ 2> /dev/null)
fi
if [ -z "$CXXCOMPILER" ] ; then
    /bin/echo -e "\nYou may have to install 'g++' on your build machine\n"
    #exit 1
fi
if [ ! -z "$CXXCOMPILER" ] ; then
    CXXCOMPILER_VERSION=$($CXXCOMPILER -v 2>&1 | sed -n '/^gcc version/p' |
        sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q')

    if [ -z "$CXXCOMPILER_VERSION" ] ; then
        /bin/echo -e "\nYou may have to install 'g++' on your build machine\n"
    fi

    CXXCOMPILER_MAJOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/\..*//g")
    CXXCOMPILER_MINOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/^$CXXCOMPILER_MAJOR\.//g" -e "s/\..*//g")
    if [ $CXXCOMPILER_MAJOR -lt 3 -o $CXXCOMPILER_MAJOR -eq 2 -a $CXXCOMPILER_MINOR -lt 95 ] ; then
        /bin/echo -e "\nYou have g++ '$CXXCOMPILER_VERSION' installed.  g++ >= 2.95 is required\n"
        exit 1
    fi
fi

有两个地方会打印“You may have to install ‘g++‘ on your build machine”,在这两个地方分别加入调试标记,发现是这里出问题了。

# check for host CXX

CXXCOMPILER=$(which $HOSTCXX 2> /dev/null)

if [ -z "$CXXCOMPILER" ] ; then

CXXCOMPILER=$(which c++ 2> /dev/null)

fi

if [ -z "$CXXCOMPILER" ] ; then

/bin/echo -e "\nYou may have to install ‘g++‘ on your build machine\n"

#exit 1

fi

if [ ! -z "$CXXCOMPILER" ] ; then

CXXCOMPILER_VERSION=$($CXXCOMPILER -v 2>&1 | sed -n ‘/^gcc version/p‘ |

sed -e ‘s/^gcc version \([0-9\.]\)/\1/g‘ -e ‘s/[-\ ].*//g‘ -e ‘1q‘)

if [ -z "$CXXCOMPILER_VERSION" ] ; then

/bin/echo -e "\nYou may have to install ‘g++‘ on your build machine\n"

fi

CXXCOMPILER_MAJOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/\..*//g")

CXXCOMPILER_MINOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/^$CXXCOMPILER_MAJOR\.//g" -e "s/\..*//g")

if [ $CXXCOMPILER_MAJOR -lt 3 -o $CXXCOMPILER_MAJOR -eq 2 -a $CXXCOMPILER_MINOR -lt 95 ] ; then

/bin/echo -e "\nYou have g++ ‘$CXXCOMPILER_VERSION‘ installed.  g++ >= 2.95 is required\n"

exit 1

fi

fi

原来他没有检查出来,CXXCOMPILER_VERSION为空。方便起见,我直接输入命令:

c++ -v 2>&1 | sed -n ‘/^gcc version/p‘ | sed -e ‘s/^gcc version \([0-9\.]\)/\1/g‘ -e ‘s/[-\ ].*//g‘ -e ‘1q‘

得到C++的版本为:4.4.6

我就直接在CXXCOMPILER_VERSION的判断上面加一句:CXXCOMPILER_VERSION=4.4.6

然后make,直接通过。

OK,问题解决到此结束!

【buildroot-2011.11】You may have to install 'g++' on your build machine

时间: 2024-10-12 14:49:39

【buildroot-2011.11】You may have to install 'g++' on your build machine的相关文章

【C++ 基础 11】 函数指针总结

在家学习的效率真是惨不忍睹.. =========================== 1 指针函数 int* f(int a, int b); 返回一个指向int类型的指针. 2 函数指针 2.1 声明 返回类型 (*函数名)(参数列表); 2.2 示例 int max(int a, int b) { return a > b ? a : b; } int min(int a, int b) { return a < b ? a : b; } int (*f)(int, int); // 声

【自制操作系统11】中场休息之细节是魔鬼

如果你有幸看到这一章,那么恭喜你,你已经完成了整个操作系统的一多半了,而且如果你前面的东西都完全掌握了,那后面无非就是顺水推舟的事情了.本章不做继续的讲解,而是将之前的知识进行回顾,并把相似的知识点做对比.同时我也将到目前为止最大的感悟 细节是魔鬼 分享给大家. 一.到目前为止的程序流程图 为了让大家清楚目前的程序进度,画了到目前为止的程序流程图,如下.其实就是截至到内存管理这一块 二.回顾一下我们都做了些什么 这里列出整个系列到目前为止的目录,刚好也可以作为索引方便大家阅读了 [自制操作系统0

【练习5.11】图像分割、cvPyrSegmentagtion、图像金字塔

提纲 题目要求 程序代码 结果图片 要言妙道 题目要求: 载入一张风景图,执行cvPyrSegmentation操作 a.threshold1=threshold2=200 b.threshold1=200,threshold2=50 c.threshold1=200,threshold2=100 程序代码: 1 // OpenCVExerciseTesting.cpp : 定义控制台应用程序的入口点. 2 // 3 //D:\\Work\\Work_Programming\\Source\\I

【2012.07.11】最长回文 --马拉车算法

总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  5120000kB 描述 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 输入 一个文件一组数据每组输入为一行小写英文字符a,b,c...y,z组成的字符串S字符串长度len <= 110000 输出 一个整数x,表示该字符串中所包含的最长回文长度. 样例输入 aaaa -------------//忽视 分割线 下同

【USACO 2011 Open】修剪草坪(DP)

题目描述 在一年前赢得了小镇的最佳草坪比赛后,FJ 变得很懒,再也没有修剪过草坪.现在,新一轮的最佳草坪比赛又开始了,FJ 希望能够再次夺冠.然而,FJ 的草坪非常脏乱,因此,FJ 只能够让他的奶牛来完成这项工作.FJ 有 N 只排成一排的奶牛,编号为 1...N.每只奶牛的效率是不同的,奶牛 i 的效率为 E_i.靠近的奶牛们很熟悉,因此,如果 FJ 安排超过 K 只连续的奶牛,那么,这些奶牛就会罢工去开派对:).现在 FJ 需要你的帮助,计算 FJ 可以得到的最大效率,并且该方案中没有连续的

【Linux基础 11】vi和vim编辑器的使用

vi -- 终端中的编辑器 目标 vi 简介 打开和新建文件 三种工作模式 常用命令 分屏命令 常用命令速查图 01. vi 简介 1.1 学习 vi 的目的 在工作中,要对 服务器 上的文件进行 简单 的修改,可以使用 ssh 远程登录到服务器上,并且使用 vi 进行快速的编辑即可 常见需要修改的文件包括: 源程序 配置文件,例如 ssh 的配置文件 ~/.ssh/config 在没有图形界面的环境下,要编辑文件,vi 是最佳选择! 每一个要使用 Linux 的程序员,都应该或多或少的学习一些

【iOS开发-11】UISlider滑动条的属性介绍以及于标签联合使用实时显示变动值

(1)滑动条的左右端背景可以设置上一页下一页的图片: (2)滑动条的轨道图片可以设置为渐变等等图片. (3)滑动条因为值可以互动,所以addTarget:方法很重要,其中事件值变动UIControlEventValueChanged比较特殊,其实和按钮的按下事件是一个性质,都是一个事件而已. #import "ViewController.h" @interface ViewController () @end @implementation ViewController { //应为

【OC学习-11】ARC和内存管理里面的alloc、assign、new、retain、copy、mutableCopy、release说明

一般我们在开发程序时,只管alloc,不需要管release,因为有ARC帮我们管理.但是在学习时仍需要了解:内存是有限的,在堆区分配了内存后,如果不需要,则要回收,不然内存不够引起崩溃. 所以原则是:有分配,就有回收.但是这个分配有可能分配好几次,那么回收怎么知道回收几次呢?这就是引用计数的作用.创建一个对象时,它自带了这个引用计数. (1)alloc.new.copy.mutableCopy和retain时,引用计数+1,即retainCount+1; (2)release时,引用计数ret

【2016.12.11】JavaScrip计算自己活了多少天

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn"> <head> <met