今回はSTM32でのmath関数使用時のエラー対処について紹介します。
以前にご紹介したDSP処理の前設定2でも同じようなエラーがでましたが、
以前はDSPを使用した関数でした。
今回はDSP関数は使用せず、math関数使用時のエラー対処方法です。
環境はこれまで同様、
・STM32F303K8
+SW4STM32(System Workbench for STM32)
+STM32CubeMX(F3_1.6.0)
です。
main.c関数中でpowなど使う分には問題ありませんでしたが、
読み込んだヘッダやドライバ系にpow関数を使うと
下記のようなエラーが発生してコンパイルできませんでした。
w_pow.c:(.text.pow+0x): undefined reference to `__errno'
collect2.exe: error: ld returned 1 exit status
make: *** [STM32F.elf] Error 1
collect2.exe: error: ld returned 1 exit status
make: *** [STM32F.elf] Error 1
Eclipseのプロジェクトから
「C/C++ Build」→「Settings」→「ToolSettings」→「MCU GCC Linker」
「Libraries」に下記のように
m
を追加します。
上記のようなエラーに遭遇するパターンがいくつかあるため、
今回はmの追加で回避できました。