转载地址: http://blog.sina.com.cn/s/blog_7905bef10100u0kn.html
http://blog.sina.com.cn/s/blog_53ed87c1010002p7.html
#include <math.h>
程序中用到数学函数.原本只要在程序中加上面这一行就行了.
gcc不知道犯什么毛病.不仅程序里要有include,编译的时候也要在指令后面加-lm
否则就这德行了:
/tmp/cc4FFwdt.o(.text+0x126): In function `main':
: undefined reference to `sqrt'
/tmp/cc4FFwdt.o(.text+0x169): In function `main':
: undefined reference to `sqrt'
collect2: ld returned 1 exit status
编译时像这样就行
gcc -o abc abc.c -lm
-*-*-*-*-*-*-
参考:
Q. 编译程序时得到undefined reference to 'xxxx'这样的错误提示
A: 那你一定是缺少某个库,用 -l参数将库加入。Linux的库命名是一致的,一般为libxxx.so,或libxxx.a,libxxx.la,那么你要链接某个库就用-lxxx,去掉头lib及"."后面的so,la,a等即可。
同时,常见的库链接方法为:
数学库 -lm ; posix线程 -lpthread