Cのコンパイルについて

2010/11/17未分類import

math.hを使うときのコンパイルオプション.

久しぶりにmath.hの関数を使うことになりコンパイルしたらエラーになりました.実行したのは下記.
#include<stdio.h>
#include<math.h>

int main(int argc, char *argv[])
{
	double tei=2;
	double kata=10;
	double atai;

	atai = pow(tei,kata);
	printf("%f\n",atai);		

return 0;
}
コンパイルをした際はノーオプションでgccを使いました.
ushi@BigOwl:~$ gcc power-test.c
/tmp/ccMaP96f.o: In function `main':
power-test.c:(.text+0x31): undefined reference to `pow'
collect2: ld returned 1 exit status
ushi@BigOwl:~$
それが間違いで,math.hを使うときは-lmオプションをつけるべきだったのでした.mathのライブラリを読めというような意味と思われます.
ushi@BigOwl:~$ gcc power-test.c -lm
ushi@BigOwl:~$
今度はエラーが出ることもなく.盲点かも知れないので,記事にしておきます.

どうやら,bccなどでは多分このオプションは不要です.