xliang9550 发表于 2015-5-25 23:49

用gcc编译包含math.h的源程序时加上-lm参数避免链接出错

我用gcc编译数学函数处理程序,通过预处理器#include<math.h>包含头文件。
编译没有问题,链接时提示未定义函数引用。
后来发现在命令行末尾加上-lm参数就可以了。
比如gcc --std=c99 -o program program.c -lm
(在Windows平台暂时没有遇到这样的问题。)

webfch 发表于 2015-5-26 02:00

-lm参数是啥意思?流氓模式?

vimacs 发表于 2015-5-26 21:46

webfch 发表于 2015-5-26 02:00
-lm参数是啥意思?流氓模式?

连接libm.so或者libm.a(静态链接).-lxxx就是表示连接libxxx.
一般来说,编译器都会有默认的连接选项,所以有时可能不加-lm也不会连接出错,但为了保险起见,除了-lc之外必要的连接选项最好加上。
页: [1]
查看完整版本: 用gcc编译包含math.h的源程序时加上-lm参数避免链接出错