最近写了个小程序,用到了pow()函数,我们都知道需要添加头文件<math.h>,以及在gcc编译的侍侯加上-lm选项,但是这个-lm选项的位值也是有讲究的,我之前的makefile如下:
solution:solution.o
gcc -lm solution.o -o solution
solution.o:solution.c
gcc -c solution.c
报出错误:undefined reference to pow
原因是-lm的位置在solution.o之前,所以编译器链接的时侯先去链接lm库,之后无法解释solution.o里的pow函数
所以正确的makefile如下:
原因是-lm的位置在solution.o之前,所以编译器链接的时侯先去链接lm库,之后无法解释solution.o里的pow函数
所以正确的makefile如下: