-lm
数学ライブラリの関数を参照するプログラムをコンパイルするために、gcc でフラグが必要であることを発見しました。time ライブラリなどの他のライブラリを含むプログラムをコンパイルするときに、なぜ明示的なリンク フラグが必要ないのか疑問に思っています。関数が呼び出されるプログラムを作成するtime()
と、リンク オプションがなくても問題なくコンパイルされます。しかし、数学ライブラリが関係するプログラムは、-lm
フラグなしでは機能しません。
誰でもこの動作の背後にある理由を説明できますか? 御時間ありがとうございます。