linux C有include为什么没有link

[复制链接]
查看11 | 回复3 | 2010-9-14 21:07:14 | 显示全部楼层 |阅读模式
比如要用到函数sqrt 头文件中include但是gcc编译时会提示link出错,要加上参数-lm才行
另:-lm是什么意思?

回复

使用道具 举报

千问 | 2010-9-14 21:07:14 | 显示全部楼层
-l 表示library,即库,Linux下的库一般被命名为 libXXX(比如libc6),在GCC中编译时,需要用 -l 选项,后面加上库名称(由于库名称都是 lib 开头的,省略 lib 字样仍然可以确定对应的库,不会出错,所以 -l 后面只需要加XXX 就行,不用写出完整的 libXXX,更不用写成libXXX.so),中间没有空格,每个库都要加 -l。简单地说,-lm 要分成两个部分,-l 是gcc命令的选项,而 m 是 -l 的参数(姑且称呼为参数吧)。
回复

使用道具 举报

千问 | 2010-9-14 21:07:14 | 显示全部楼层
有遇到过这样问题的人说,可能是表示连接数学库
回复

使用道具 举报

千问 | 2010-9-14 21:07:14 | 显示全部楼层
libm.so库的意思,比如用了zlib,就要加-lz
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行