目的
なるべく新しいバージョンのコンパイラを使って気持ちよくなりたい
注意事項
備忘録です.自分で試してできただけですので,他の環境にて正しく動作する保証は致しません.
環境
- Windows10 Home
- STM32CubeIDE 1.8.0
- (新しく入れたやつ)GNU Arm Embedded Toolchain 10.3-2021.10
ダウンロード
ここからzipを落としてくる
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
中身を移す
\ST\STM32CubeIDE_1.8.0\STM32CubeIDE\plugins\
に落としてきたzipの中にある gcc-arm-none-eabi-10.3-2021.10
をコピー
パスを通す
CubeIDEを開き,Project
>Properties
>C/C++ Build
>Environment
に行く.
PATHの中にある
${INSTALL_PATH}\ST\STM32CubeIDE_1.8.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\bin;
の部分を
${INSTALL_PATH}\ST\STM32CubeIDE_1.8.0\STM32CubeIDE\plugins\gcc-arm-none-eabi-10.3-2021.10\bin;
にする.(${INSTALL_PATH}
はインストールしているディレクトリの絶対パス)
要は追加した方のフォルダの中にあるarm-none-eabi-g++.exe
があるディレクトリのパスを指定しているだけ.
(2022/4/5追記)
上記の${INSTALL_PATH}\ST\STM32CubeIDE_1.8.0\STM32CubeIDE\
は${eclipse_home}
というシンボルで定義されている.
つまりコンパイラのパスとして,${eclipse_home}plugins\gcc-arm-none-eabi-10.3-2021.10\bin;
を指定することが可能である.
これにより,GitHubなどでプロジェクトを共有し,他環境でCubeIDEがインストールされている場所が異なる場合でもコンパイルを行うことができる(もっとも,${eclipse_home}
以下のパスが一致している必要がある).
バージョンの確認
本当に新しいのが入ってるか確認したい.
定義済みマクロの__GNUC__
などで見てみたり,コンパイルオプションに-dumpversion
を追加してみたりして確認した.
後者はなぜかリンクするときにエラー吐いたけど,確認できたしオプション外せばちゃんとビルド通るしヨシ!