You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

引入math头文件后调用ceil函数出现未定义引用错误

问题:引入math.h后调用ceil函数出现未定义引用错误

已引入math.h头文件,但调用ceil函数时抛出未定义引用错误,代码如下:

#include <stdio.h>
#include <math.h>

int main()
{
   double num = 8.33;
   int result;

   result = ceil(num);
   printf("Ceiling integer of %.2f = %d", num, result);

   return 0;
}

编译时得到的错误信息:

/usr/bin/ld: /tmp/ccG3j9iB.o: in function `main':
maximumRebounding.c:(.text+0x1f): undefined reference to `ceil'
collect2: error: ld returned 1 exit status

解决方案

这是因为C语言的数学库(libm)不会被编译器自动链接,即便你已经包含了math.h头文件。编译代码时需要手动指定链接数学库,添加-lm参数。

正确的编译命令示例:

gcc maximumRebounding.c -o maximumRebounding -lm

另外,ceil函数的返回值是double类型,直接赋值给int变量会发生隐式类型转换,若要代码更严谨,可以显式转换:

result = (int)ceil(num);

内容的提问来源于stack exchange,提问作者Harshit Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:25:03