8

fmod のサンプル コード:

#include <stdio.h>    
#include <math.h>

int main(void)   
{    
  double x = 0.14527, y = 3.14159;   
  printf("fmod(x, y) = %.6lf\n", fmod(x, y));    
  return 0;    
}

コンパイル:

$ gcc main.c -o main

私は得る

/tmp/ccztJO01.o: 関数「main」内:

main.c:(.text+0x4d): `fmod' への未定義の参照

collect2: ld が 1 つの終了ステータスを返しました

次に、Googleでこれを見つけました:

$ gcc -lm main.c -o main

を使用する必要があるのはなぜ-lmですか。正確には何ですか? gcc に関する詳しい情報はどこから入手できますか?

4

3 に答える 3

10

-lmlibmを含むすべての浮動小数点演算ルーチンを含むlink を指定するだけです(ここで驚くことではありません) fmod

于 2010-07-09T04:01:03.797 に答える
4

不平を言っているのはコンパイラではなく、リンカです。プログラムldでルーチンが見つかりません。フラグをfmod使って数学ライブラリlibmとリンクするように指示する必要があります。-l

[はるかに]詳細:GCC、GNUコンパイラコレクション

于 2010-07-09T04:22:03.037 に答える