arm の Linux コンパイル ツール チェーンを更新する

arm の gcc 5.5 の現在のツール チェーンが C++17 構文を十分にサポートしていないことを考慮すると、ツール チェーンをアップグレードする必要があります。

詳細な手順は次のとおりです。公式ツールチェーンを使用する

ARM 公式ツールチェーン Web サイト:

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

ベアメタル バージョンは、オペレーティング システム (ベアメタル環境) を使用しない ARM 用に開発されています。

主に、Cortex-M アーキテクチャに対していくつかの最適化が行われました。

 

上記と同様に、tar.xz をダウンロードします。これはツール チェーン ファイルです。

なお、ascはtar.xzの署名ファイルですので、正しい組織が発行したものであることを確認してください(操作はできません)

確認したい場合の方法は以下の通りです。

gpg –verify tar.xz.asc tar.xz

Sha256asc は、検証データが完全であることを確認するための概要ファイルです (検証することが最善です)。

以下のような方法:

sha256sum tar.xz

ダウンロードが完了したら

sha 値を比較して、ファイルが正常であることを確認します。コマンドは次のとおりです。

ツールチェーンをインストールします。

1: 解凍する

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

2: 実行してバージョンを表示します

バージョン:

3: 環境変数を構成する

コマンドが既存のコマンドと重複しないように、最初にソフト リンクを作成します。

4: コードのコンパイル

以前に使用されていた 5.5 ツール チェーンは make_unique をサポートしていません。コードは次のとおりです。

#include <iostream>

#include <memory>

int main()

{

  std::unique_ptr<int> p = std::make_unique<int>(10);

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

  getchar();

}

gnu5.5 ツールを使用すると、gcc は次のようになります。

コンパイル エラー。次のように、make_unique はサポートされていません。

同じコードは gcc12.3 を使用して正常にコンパイルされます。

以上で、ツールチェーンのアップグレードは完了です。

おすすめ

転載: blog.csdn.net/weixin_45119096/article/details/132325494