重複の可能性:
なぜCで数学ライブラリをリンクする必要があるのですか?
私はGCCコンパイラ(Linux上)を使用してCを学習しています。
最近、Code :: Blocksの使用からを使用するように移行しましたが、必要なライブラリに自動的にリンクされないGeany
ことに気付きました。Geany
たとえば#include <math.h>
、Code :: Blocksで使用する場合、それを取得し、コンパイル時に対応する数学ライブラリに自動的にリンクします。ただし、Geany
これは行わない-lm
ため、コンパイルを機能させるには、数学ライブラリなどのビルドコマンドを手動で追加する必要があります。
string.h
ただし、ヘッダーを含め、そこから関数を使用すると、文字列ライブラリにリンクせずに正常にコンパイルされることに気付きました。何故ですか?string.h
ヘッダーがすべての関数自体を定義しているということですか?一部のライブラリをリンクする必要があるように見えるのに、他のライブラリはリンクする必要がない理由を誰かに説明してもらえますか。
Geany
同様に、必要なライブラリに自動的にリンクするように指示した経験のある人はいますか?これにより、コンパイルが非常に簡単になります。