GCC 中 undefined reference to ‘ceil’ collect2:ld returned 1 exit status 错误

当我们用gcc编译一个c文件时,如果用到了math.h中的一些数学函数,例如:ceil(),floor()等,可能会出现如下错误:

undefined reference to ‘ceil’  

collect2:ld returned 1 exit status

主要是因为使用math.h中声明的库函数时,gcc命令行必须加-lm选项,如果没有加就会出现上面的错误,原因在于数学函数位于libm.so库文件中,-lm选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找。我们平时用到的大部分函数(例如printf)位于libc.so库文件中,使用libc.so中的库函数在编译时不需要加-lc选项,是因为这个选项是gcc默认的选项。所以在使用gcc命令去执行c文件时,如果使用了math.h中的库函数的时候,一定要加-lm选项。《摘自linux c编程一站式学习》

例如:

gcc main.c -lm -o main


  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值