大家都知道,ANSI-C里面包含数学函数的头文件是math.h。
如果是在windows下面写有关的程序,重要包含这个头文件,编译起来应该没有什么问题。
但是如果在linux下面使用下面的命令编译的话。gcc -o test test.c
就会报下面的错误
: undefined reference to `pow' collect2
: ld returned 1 exit status
math.h 它不是一个库,而只是一个包含了许多数学函数和常量的头文件。
而具体的实现是在libm.so里面。注意,这个库文件不是叫libmath.so。(如果是这个名字的话,大家就没有麻烦了)。
因此在编译的时候,如果具体告诉它使用哪个具体的库。
gcc中-l的参数就是这个意思。
比如-lx 就表示去找libx.so文件。
因此使用下面的命令就可以了 gcc -o test test.c -lm