对“sqrt”的未定义引用

发布于 2024-12-26 03:28:05 字数 248 浏览 2 评论 0原文

我的程序的一部分是计算浮点数的sqrt。 当我写 sqrt(1.0f); 时,我成功编译了程序,但是当我写 sqrt(-1.0f); 时 编译失败,未定义引用'sqrt' - 我想在这种情况下将返回nan值... 我使用 gcc 编译该程序。 当我用 Visual Studio 编译它时,它已成功编译,并带有 sqrt 的负参数。 问题如何解决 谢谢

Part of my program is to calculate sqrt of float number.
When I write sqrt(1.0f); I success to compile the program,but when I write sqrt(-1.0f);
the compilation fails with undefined reference to 'sqrt' - I suppose that in this case the nan value will be returned...
I compile the program uing gcc.
When I compile it with visual studio it is compiled successfuly with negative argument to sqrt.
How the problem could be solved
Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

罗罗贝儿 2025-01-02 03:28:05

您必须在大多数基于 Unix 的系统上添加 -lm 标志,如下所示:

编译使用:

gcc -c file.c

然后链接使用:

gcc -o program file.o -lm

或者,如果您不想分开两个编译步骤,只需编写:

gcc -o program file.c -lm

You have to add the -lm flag on most Unix-based systems, as in:

Compile using:

gcc -c file.c

and then link using:

gcc -o program file.o -lm

Or if you don't want to separate the two compilation steps, simply write:

gcc -o program file.c -lm
蘸点软妹酱 2025-01-02 03:28:05

使用 -lm 链接以链接数学库

Link with -lm to link with the math library

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文