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


你可能感兴趣的:(C/C++)