记录: 交叉编译报错 error: ‘xxxx‘ is not amember of ‘std‘

今天项目需要移植一个程序,平常都是跑aarch平台的板子,新项目板子是arm, 编译时突然给我报了这个错误,整顿了一番后,才发现时环境中的编译器版本太低了,也正好是时候更新一下环境了,特此做个记录。

因为用的是Asio库, 在不编译Boost的前提下需要支持C++11,于是检查交叉编译器对C++版本的支持,发现没有输出

arm-linux-gnueabihf-g++ -E -dM - </dev/null | grep "STDC_VERSION"

重新检查一下本地环境

g++ -E -dM - </dev/null | grep "STDC_VERSION"

#define __STDC_VERSION__ 201710L

发现输出的是201710L, 说明指令没错,2017支持的是C++17, 就是arm交叉编译器版本太久了,没输出说明只支持c89标准, 需要支持至少C++11才行,于是去重新安装一下交叉编译器, 问题解决。

Linaro GCC 编译器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值