今天项目需要移植一个程序,平常都是跑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才行,于是去重新安装一下交叉编译器, 问题解决。

1万+

被折叠的 条评论
为什么被折叠?



