ようこそゲストさん

Wiki 小さなそして広がっていく世界

Cのコンパイルについて

未分類

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などでは多分このオプションは不要です.

名前:  非公開コメント   

  • TB-URL  http://ac206223.ppp.asahi-net.or.jp/adiary/memo/adiary.cgi/hirosugu/066/tb/