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 ...
最新文章
- Android微信智能心跳方案 Android微信智能心跳方案
- 编程软件python下载-Thonny(Python编程工具) v3.2.7 官方版
- List list=new ArrayList()怎么回事
- c#学习路线应该靠谱
- (轉貼) Jolt 2007得獎名單 (News) (.NET)
- 网站快速成型_我的老板对快速成型有什么期望?
- linux替换某个文件夹下所有文件,Linux 批量查找并替换文件夹下所有文件的内容...
- ASP.NET AJAX (Atlas) 拖放(Drag Drop)功能6种实现方法总结
- 3.26 Tensorflow 实验记录
- 离散系统的李雅普诺夫稳定判据
- 【C++】针对char 字符类型cout的三种输出情况(++ch 和 ch+1 和 ch++)难点加重点
- python实现金字塔图案
- ProFTPD对接LDAP
- 结构体、共用体、位操作和枚举类型
- cadence修改板框倒角_Allegro软件中如何对板框进行倒角及倒角不成功解决方法
- lnmp搭建qq农场
- 新概念三英语学习Unit2
- sheng的学习笔记-内部类
- msra数据集_干货下载 | 中文自然语言处理 语料/数据集
- 阿里和京东,谁在假装体面?