1.首先我们写一个简单的C源程序;
#include<stdio.h>
#include<math.h>
void main()
{
int a,b;
b=9;
printf("The result is %d!",sqrt(b));
}
2.编译C文件 gcc -o main main.c
编译会出现错误,找不到sqrt该函数
3.需要执行以下命令来解决
gcc math.c -lm -o math
那么-lm是什么意思呢?-l是指定程序链接哪个静态库或者动态库,-m表示的是数学库,也就是使用math.h头文件,就得链接数学库进行编译,-lm的意思就是告诉程序链接数学库;
解决方法2:
gcc -c main.c # -c参数的作用是让gcc只编译,不链接
gcc -c test.c
gcc -o main main.o test.o # 将编译好的目标代码链接
方法3:
gcc -o main main.c test.c
方法4:
gcc main.c -o main -include foo.h foo.c