« 左利きの日 | トップページ | 外仕事 »

2016年9月 2日 (金)

算術演算ライブラリ

stm32f4のGCC環境よもやま。

非常に今更だけれど、算術関数を使おうとして、math.hをインクルードしたり、-lmスイッチを指定してみたりしている。
ところが、リンカにundefined referenceと言われてしまって、なかなか進展がない。

最適化オプションと、浮動小数点演算の相性が悪いのは経験済みなので、最適化を切っているのだけれど影響は無いようだ...

ライブラリ本体が組み込まれていないのは確実なようなので、スイッチでライブラリのフォルダを指定してみたりするが、不発...

この辺で諦めて、しばらくほってあった。

------

今日、一計を案じ、コマンドラインのオプションに、ライブラリそのものをリンクするようにしてしてみた。

arm-none-eabi-gcc .....(中略).....  *.o -lm libm.a

おお、リンカが文句を言わなくなった。

生成されたオブジェクトを実行してみると、ちゃんと関数が呼ばれているようだ。
三角関数とかも、ちゃんと動くようになった。

libm.aの実体はlibフォルダにあるので、パスは通っている訳なんだけれど、なんでこれならうまくいくのか、よく分からない。
まあGCCだし、細かいことは気にしても仕方ないのかも。

|

« 左利きの日 | トップページ | 外仕事 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 算術演算ライブラリ:

« 左利きの日 | トップページ | 外仕事 »