算術演算ライブラリ
stm32f4のGCC環境よもやま。
非常に今更だけれど、算術関数を使おうとして、math.hをインクルードしたり、-lmスイッチを指定してみたりしている。
ところが、リンカにundefined referenceと言われてしまって、なかなか進展がない。
最適化オプションと、浮動小数点演算の相性が悪いのは経験済みなので、最適化を切っているのだけれど影響は無いようだ...
ライブラリ本体が組み込まれていないのは確実なようなので、スイッチでライブラリのフォルダを指定してみたりするが、不発...
この辺で諦めて、しばらくほってあった。
------
今日、一計を案じ、コマンドラインのオプションに、ライブラリそのものをリンクするようにしてしてみた。
arm-none-eabi-gcc .....(中略)..... *.o -lm libm.a
おお、リンカが文句を言わなくなった。
生成されたオブジェクトを実行してみると、ちゃんと関数が呼ばれているようだ。
三角関数とかも、ちゃんと動くようになった。
libm.aの実体はlibフォルダにあるので、パスは通っている訳なんだけれど、なんでこれならうまくいくのか、よく分からない。
まあGCCだし、細かいことは気にしても仕方ないのかも。
| 固定リンク | 0
コメント