linux用gcc编译c程序,In function `main’:
sin.c:(.text+0x88): undefined reference to `cos’,出现在main函数中未定义sin,cos错误的解决办法
简介:
使用的是腾讯云服务器centos7,gcc编译
代码如下:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#define PI 3.1415
void main(){
int begintime,endtime;
float n;
int i=0;
begintime=clock();
for( i=0;i<10;i++)
{
n=(rand()%100000)*0.00001;
printf("%.8f %.8f %.8f\n",n ,sin(n*PI/180),cos(n*PI/180));
}
endtime = clock();
printf("\n\nRunning Time:%dms\n",endtime-begintime);
}
运行错误如下:
(base) [root@VM_0_17_centos ~]# cd /home/汇报文档1
(base) [root@VM_0_17_centos 汇报文档1]# gcc -o sin sin.c
/tmp/ccjXrdOT.o: In function `main':
sin.c:(.text+0x88): undefined reference to `cos'
sin.c:(.text+0xb6): undefined reference to `sin'
collect2: error: ld returned 1 exit status
(base) [root@VM_0_17_centos 汇报文档1]#
解决方法:
使用gcc sin.c -o sin -lm 语句编译
(base) [root@VM_0_17_centos 汇报文档1]# gcc sin.c -o sin -lm
(base) [root@VM_0_17_centos 汇报文档1]#
(base) [root@VM_0_17_centos 汇报文档1]# ./sin
0.89383000 0.01559918 0.99987833
0.30886000 0.00539044 0.99998547
0.92777002 0.01619146 0.99986891
-l选项是链接某个库, 这里我们链接math库