c - c 中的 sqrt() 方法(Netbeans 编译器与 gcc)

标签 c gcc netbeans

我正在为学校练习c语言做一些教程练习。我有这个小方法(海伦公式):

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
.
.
double s = (a+b+c)/2.0;
double A = sqrt(s*(s-a)*(s-b)*(s-c)) //a,b,c = 3,3,2
.
.

我可以用 gcc 编译它:

gcc exercise.c -o exercise -lm

一切正常。问题是,当我尝试在 Netbeans 中重写相同的代码时,它会抛出此错误:

/home/l2ysho/NetBeansProjects/cviko1/main.c:48: undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
nbproject/Makefile-Debug.mk:62: recipe for target 'dist/Debug/GNU-       Linux/cviko1' failed
make[2]: *** [dist/Debug/GNU-Linux/cviko1] Error 1
make[2]: Leaving directory '/home/l2ysho/NetBeansProjects/cviko1'
nbproject/Makefile-Debug.mk:59: recipe for target '.build-conf' failed
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory '/home/l2ysho/NetBeansProjects/cviko1'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 861ms)

在 Netbeans 中,sqrt() 方法仅适用于数字 (sqrt(2.5)),但不适用于常量 (sqrt(s))。我认为,这是 Netbeans 编译器的一些问题。有人有类似的问题吗?

最佳答案

我找到了一个解决方案。如果您遇到同样的问题,您可以在 NetBeans IDE 中硬链接(hard link) math.h:

File->Project Properties->Build->Linker->Libraries->add Library/add standard Library

我还尝试向 NetBeans 编译器配置添加 -lm 参数,但这不起作用。

关于c - c 中的 sqrt() 方法(Netbeans 编译器与 gcc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40068194/

相关文章:

c - 我不明白我的代码中发生了什么

C:如何释放已分配字符串的初始部分?

netbeans - 如何设置对包含多个 jar 文件的文件夹的引用?

java - 如何将文本框中的数据插入java-netbeans中的mysql数据库

java - 在 Java 中包含图像

c - 简单的程序无法让topper工作

c - 编译 C 代码时出现 iostream.h 错误

gcc - MacOS High Sierra上的链接错误: “Undefined symbols for architecture x86_64” std::__1

c - 关于调用自身的函数的堆栈重用?

c - 如何隐藏Linux静态库的本地符号