找回密码
 注册
快捷导航
查看: 6805|回复: 2

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

[复制链接] |自动提醒
阅读字号:

1万

回帖

122

积分

11万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2008-9-22
年全勤勋章2020年全勤勋章2019月全勤勋章年全勤勋章2017年全勤勋章2018
发表于 2015-5-25 23:49:47| 字数 151| - 中国–北京–北京 电信/星缘新动力科技有限公司电信节点 | 显示全部楼层 |阅读模式
我用gcc编译数学函数处理程序,通过预处理器#include<math.h>包含头文件。
编译没有问题,链接时提示未定义函数引用。
后来发现在命令行末尾加上-lm参数就可以了。
比如gcc --std=c99 -o program program.c -lm
(在Windows平台暂时没有遇到这样的问题。)

7万

回帖

606

积分

3万

资产值

天下无敌I Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2005-3-14
银牌荣誉勋章(注册10年以上会员)
发表于 2015-5-26 02:00:58| 字数 15| - 中国–江苏–连云港 电信 | 显示全部楼层
-lm参数是啥意思?流氓模式?
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2015-1-5
发表于 2015-5-26 21:46:14| 字数 151| - 中国–北京–北京–海淀区 教育网/北京大学 | 显示全部楼层
QUOTE:
webfch 发表于 2015-5-26 02:00
-lm参数是啥意思?流氓模式?

连接libm.so或者libm.a(静态链接).-lxxx就是表示连接libxxx.
一般来说,编译器都会有默认的连接选项,所以有时可能不加-lm也不会连接出错,但为了保险起见,除了-lc之外必要的连接选项最好加上。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-1-17 03:36 , Processed in 0.119023 second(s), 33 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部