更新arm的linux编译工具链

虑到目前arm的gcc 5.5的工具链对C++17语法支持不足,需要升级下工具链。

以下是详细步骤。使用官方提供的工具链

ARM官方的工具链网站:

https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

bare-metal这个版本就是没有操作系统(裸机环境)下针对ARM开发。

主要是针对Cortex-M架构做了一些优化。

更新arm的linux编译工具链_第1张图片

 

如上,下载tar.xz,这个就是工具链文件

此外,asc是tar.xz的签名文件,确保是正确机构发布的(可以不操作)

如果要验证,方法如下:

gpg –verify tar.xz.asc tar.xz

Sha256asc是摘要文件,确保验证数据是完整的(最好验证下)

方法如下:

sha256sum tar.xz

下载完成后

对比下sha值确保文件ok,命令如下:

更新arm的linux编译工具链_第2张图片

安装工具链:

1:解压缩

sudo tar -xvf arm-gnu-toolchain-12.3.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz -C /opt/gcc12.3

2:运行查看版本

更新arm的linux编译工具链_第3张图片

版本:

更新arm的linux编译工具链_第4张图片

3:配置环境变量

先创建软链接,防止命令和已有老的命令重复了

更新arm的linux编译工具链_第5张图片

4:代码编译

之前使用5.5的工具链,不支持make_unique,代码如下,

#include 

#include 

int main()

{

  std::unique_ptr p = std::make_unique(10);

  std::cout<<"this is a test !!" << std::endl;

  getchar();

}

使用gnu5.5的工具,gcc为:

更新arm的linux编译工具链_第6张图片

编译错误,不支持make_unique,如下:

更新arm的linux编译工具链_第7张图片

同样的代码使用gcc12.3编译成功:

以上,升级工具链完成

你可能感兴趣的:(arm开发,linux,运维)