博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【buildroot-2011.11】You may have to install 'g++' on your build machine
阅读量:7282 次
发布时间:2019-06-30

本文共 2407 字,大约阅读时间需要 8 分钟。

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 CXXCXXCOMPILER=$(which $HOSTCXX 2> /dev/null)if [ -z "$CXXCOMPILER" ] ; then    CXXCOMPILER=$(which c++ 2> /dev/null)fiif [ -z "$CXXCOMPILER" ] ; then    /bin/echo -e "\nYou may have to install 'g++' on your build machine\n"    #exit 1fiif [ ! -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    fifi
有两个地方会打印“
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,问题解决为此。

转载地址:http://bezjm.baihongyu.com/

你可能感兴趣的文章
彻底理解浏览器的跨域
查看>>
1009 说反话 (20 分)
查看>>
Flutter Wrap & Chip
查看>>
Vue路由自动注入实践
查看>>
类数组转化成数组的方法
查看>>
Android屏幕适配方案
查看>>
使用Databinding轻松快速打造仿携程app筛选控件(二)
查看>>
AppCompatActivity怎么对View做的拦截
查看>>
记b站的一次react尝试
查看>>
Binder IPC
查看>>
mpvue开发小程序
查看>>
LINUX使用LDAP进行统一认证
查看>>
linux 下 ifcfg-eth0 配置
查看>>
C++:sprintf()的用法
查看>>
Unity3d之Animation(动画系统)
查看>>
Winform/WPF中内嵌BeetleX的HTTP服务
查看>>
vmware server安装码
查看>>
jQuery插件AjaxFileUpload实现ajax文件上传
查看>>
Django 的模板中的数学运算
查看>>
Robotium中调用getActivity()方法导致程序挂起的研究浅析
查看>>