gcc -lm 是什么意思?
今天看到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下。
初学linux和gcc,C代码调用math.h中的函数有问题,如sqrt函数。若如sqrt(3.0)则可以编译通过并运行正常,若如sqrt(n),这里n是定义好的double型变量,则不能编译通过,错误信息为:undefined reference to 'sqrt'。
像 sqrt(3.0); 这种调用,gcc 在编译时就可以将其替换为对应的值(gcc 优化的一部分),从而不需要链接 sqrt 所在的数学库 libm;而像 sqrt(n); 这种调用,一般无法做这种替换,因此需要链接 libm。
编译的时候,链接 数学库, -lptread 链接线程库等等,也可以使自己编译的库
Question: 编译程序时得到undefined reference to 'xxxx'这样的错误提示
Answer: 那你一定是缺少某个库,用 -l参数将库加入。Linux的库命名是一致的,一般为libxxx.so,或libxxx.a,libxxx.la,那么你要链接某个库就用-lxxx,去掉头lib及"."后面的so,la,a等即可。 因为数学函数位于libm.so库文件中(通常在/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找.
同时,常见的库链接方法为:
数学库 -lm ; posix线程 -lpthread
lc 是link libc
lm 是link libm
lz 是link libz
gcc -lm 是什么意思?相关推荐
- gcc -lm -ldl是什么意思?----包含动态链接库
到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下. 初学linux和gcc,C代码调用math.h中的函数有问题,如sqrt函数.若如sqrt(3.0)则可以编译 ...
- Makefile 中gcc -lm -ldl是什么意思?
gcc -lm -ldl是什么意思?----包含动态链接库 到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下. 初学linux和gcc,C代码调用math.h中的 ...
- linux gcc ldl,Makefile 中gcc -lm -ldl是什么意思?
gcc -lm -ldl是什么意思?----包含动态链接库 到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下. 初学linux和gcc,C代码调用math.h中的 ...
- gcc - lm的含义
使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数 ...
- 如何在linux的gcc中添加c语言的外部链接库(“比如说,math.h
库是预编译的目标文件(object files)的集合,它们可被链接进程序.静态库以后缀为'.a'的特殊的存档文件(archive file)存储. 标准系统库可在目录 /usr/lib 与 /lib ...
- Linux常用20条命令
Linux常用20条命令 假装这里有个标题 1.cd 2.ls 3.grep 4.find 5.cp 6.mv 7.rm 8.ps 9.kill 10.kill all 11.file 12.tar ...
- python 三分钟入门_Cython 三分钟入门教程
作者:perrygeo 译者:赖勇浩(http://laiyonghao.com) 原文:http://www.perrygeo.net/wordpress/?p=116 我最喜欢的是Python,它 ...
- linux平台开发自学笔记(三)-代码编译
linux和window编代码其实大致上是差不多的,不过在一些概念上还有差别,比如使用的库不一样,编译工具不一样,shell不一样,库的链接方式也不一样,这里做个简要的总结 1.库 window上有两 ...
- C++实现质因数分解
质数(prime number)又称素数,有无限个.一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数):否则称为合数.根据算术基本定理,每一个比1大的整数,要 ...
最新文章
- OpenAI推新程序包:GPU适应十倍大模型仅需增加20%训练时间
- 心得体悟帖---16、哪些看起来很难做的事情真的不过如此
- Activity Recognition行为识别
- python manager模块_Python 并发模块
- Compound社区发起一项讨论 向5000名早期活跃用户发放总供应量5%的COMP代币
- 跨域推荐: 迁移学习和推荐系统的火花碰撞
- AIR Android开发--APK结构详解
- win10风格美化以及新建系统后优化
- flume流程之http-memory-hdfs
- java安装下载步骤_java下载安装教程
- Apache Pulsar PMC 成员翟佳入选「2020 中国开源先锋 33 人」
- electron +vue自定义点击最大化、最小化和关闭窗口事件功能
- 好好讲一讲:到底什么是Java架构师(含福利放送)
- 微信看一看小程序视频缓存到手机的位置
- java枚举值转化中文_多个枚举的国际化(枚举值的转换)
- WIN11如何一键返回桌面
- android apktool使用教程,Apktool 使用教程
- oracle 数据库如何建立索引 如何用索引?
- 选择 FreeBSD 而不是 Linux 的技术性原因
- 教学|3D建模之,游戏场景创建大致流程