无法使用 c++17 交叉编译 arm

Cannot cross-compile for arm with c++17

我正在尝试为我的 raspberry pi 交叉编译 c++14/c++17 代码。我确信它可以在我的旧电脑上运行。但是,当我尝试在我的新电脑上编译它时,它 returns 出现以下错误。

    $ arm-linux-gnueabihf-g++ main.cpp -std=c++17
    arm-linux-gnueabihf-g++: error: unrecognized command line option ‘-std=c++17’

我以为是编译器问题,我用的编译器版本是:

$ arm-linux-gnueabihf-g++ --version
arm-linux-gnueabihf-g++ (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) 4.8.3 20140303 (prerelease)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

我尝试使用

获取最新的编译器
sudo apt-get install libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi libncurses5-dev build-essential bison flex libssl-dev bc

但是版本还是一样,只能编译c++11

如何更新 arm-linux-gnueabi-g++ 编译器??我很确定有一个编译器可以工作,因为我以前使用过它,但不确定我是如何得到它的。

我发现解决这个问题最简单的方法是直接安装最新的 cross-compiler

sudo apt-get install g++-9-arm-linux-gnueabihf

并将编译器用作(只是使用 c++17 的示例)

arm-linux-gnueabihf-g++-9 main.cpp -std=c++17