我无法编译以下简单的C代码,我不知道为什么。
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
#include <math.h>
int main(){
double result;
result = cos(0.5);
printf("asin(0.5) is %f\n", result);
return 0;
}
我尝试编译后收到的错误消息是 -
In function
'main':
test.c:(.text+0xlc): undefined reference to 'cos'
collect2: ld
returned 1 exit status
答案 0 :(得分:14)
答案 1 :(得分:0)
通常,每当您收到未定义的引用错误时,由于编译器无法找到您的函数定义。所以它可能是你的函数(你没有正确输入函数的拼写,所以你会得到这个错误)或者可能是你在这种情况下遇到的内置函数。
在编制时需要探索各种图书馆及其连接。
无论何时使用数学函数,都使用-lm
(l代表链接,m代表数学)
在pthread内置函数中使用-lpthread
等等 ...
在这种情况下确实使用-lm
gcc -lm test.c
将能够编译您的程序。