gcc -lm -ldl是什么意思?----包含动态链接库
到书上出现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
-ldl
#include <dlfcn.h>
dlopen(),dlclose() , dlerror() , dlsym() , the Base Definitions volume of IEEE Std 1003.1-2001, <dlfcn.h>
这些函数,动态库的相关部分
-dl ,是显式加载动态库的动态函数库
gcc -lm -ldl是什么意思?----包含动态链接库相关推荐
- 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 是什么意思?
今天看到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下. 初学linux和gcc,C代码调用math.h中的函数有问题,如sqrt函数.若如sqrt(3.0)则可 ...
- gcc - lm的含义
使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数 ...
- gcc指定头文件搜索路径及动态链接库搜索路径
一.#include <>与#include "" #include <>直接到系统指定的某些目录中去找某些头文件. #include "&quo ...
- gcc编译多文件项目(包含静态库和动态库)
gcc背景介绍 谈到 GCC,就不得不提 GNU 计划.GNU 全称 GNU's Not UNIX,又被称为"革奴计划",由理查德·斯托曼于 1983 年发起.GNU 计划的最终目 ...
- C++学习(四零三)-lm -ldl
数学库 -lm ; posix线程 -lpthread lc 是link libc lm 是link libm lz 是link libz ldl ,是显式加载动态库的动态函数库 如果你的程序中使用 ...
- GCC编译过程与动态链接库和静态链接库
1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可 ...
- dll = MinGW gcc 生成动态链接库 dll 的一些问题汇总
MinGW gcc 生成动态链接库 dll 的一些问题汇总 https://blog.csdn.net/liyuanbhu/article/details/42612365 网络上关于用 MinGW ...
最新文章
- Java Execution Process
- 应届前端面试——看这篇就够了(一)
- 也说 ASP.NET MVC的 Script 管理
- mysql error 1594_MySQL 1594 异常解决办法
- 如何获取MDC产品文档
- 高效读取大文件,再也不用担心 OOM 了!
- 点标记 高德地图_打尽渣男渣女的查岗神器?高德家人地图实测
- [git] 如何处理push失败的commit
- pcie ep 应该支持哪种interrupt_7寸国产笔记本评测,酷睿处理器+8G+256G,还支持手写笔...
- 1. mybatis批量插入数据
- python docx官网_【记录】尝试用DocxyGen为Python代码生成文档
- 好文!研究生高效阅读的五大原则
- delphi接口带上请求头是什么意思_Python接口自动化之Token详解及应用
- 【图像分割】基于matlab改进的细菌觅食算法双阈值图像分割【含Matlab源码 069期】
- 硬盘接口类型简洁区别及SCSI设备和SCSI磁盘的概念区别
- DFS POJ 1321 棋盘问题
- Battleship!
- Web全栈工程师技能树梳理
- ZUI + SSM框架下数据表格的使用
- PageHelper分页的坑,查出来的total有误,总是等于pageSize的值
热门文章
- php中with方法可以分页吗,分页显示详解(with php)
- python线性回归 置信区间_用Python绘制回归线、置信区间和预测区间
- 残酷的纲领计算机音乐,残酷な天使のテーゼ (残酷天使的行动纲领) (Director's Edit. Version|Instrumental)...
- 涉密文件不存放在保密柜的后果有多严重你知道吗?
- 中国地区表-mysql-包含钓鱼岛-2019年10月更新-[2]
- 斜率优化dp (P2365/P5785 任务安排)
- keil 删除一行快捷键
- 绿色农业智慧管理:农产品调度可视化平台
- TOM企业邮箱:界面极简,免费无限空间
- Word -- offic2010 --02 插入代码 稿纸 公式等