我最近开始学习C作为一个业余项目。我在OpenSuse下使用最新的NetBeans,使用GCC作为编译工具集。我最早编写的程序之一是这样的:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*
*
*/
int main(int argc, char** argv) {
double rad = 1;
double result = 0;
result = sin(rad);
return (EXIT_SUCCESS);
}
这是一个简单的,无需动脑筋的例子,应该没有问题。然而,当我试图编译时,我得到一个构建错误:退出代码2(错误在第18行,对sin的未定义引用)。有趣的是,如果我将sin(rad)的值赋值为result,或者将rad替换为硬编码值,程序就可以正常编译。我哪里做错了?
在C语言中,您需要链接到数学库:
将其添加到命令行选项中:
-lm
请确保您正在链接数学库。
$ gcc myprog.c -lm