到书上出现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是什么意思?----包含动态链接库相关推荐

  1. Makefile 中gcc -lm -ldl是什么意思?

    gcc -lm -ldl是什么意思?----包含动态链接库 到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下. 初学linux和gcc,C代码调用math.h中的 ...

  2. linux gcc ldl,Makefile 中gcc -lm -ldl是什么意思?

    gcc -lm -ldl是什么意思?----包含动态链接库 到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下. 初学linux和gcc,C代码调用math.h中的 ...

  3. gcc -lm 是什么意思?

    今天看到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下. 初学linux和gcc,C代码调用math.h中的函数有问题,如sqrt函数.若如sqrt(3.0)则可 ...

  4. gcc - lm的含义

    使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数 ...

  5. gcc指定头文件搜索路径及动态链接库搜索路径

    一.#include <>与#include "" #include <>直接到系统指定的某些目录中去找某些头文件. #include "&quo ...

  6. gcc编译多文件项目(包含静态库和动态库)

    gcc背景介绍 谈到 GCC,就不得不提 GNU 计划.GNU 全称 GNU's Not UNIX,又被称为"革奴计划",由理查德·斯托曼于 1983 年发起.GNU 计划的最终目 ...

  7. C++学习(四零三)-lm -ldl

    数学库 -lm ; posix线程 -lpthread  lc 是link libc lm 是link libm lz 是link libz ldl ,是显式加载动态库的动态函数库 如果你的程序中使用 ...

  8. GCC编译过程与动态链接库和静态链接库

    1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可 ...

  9. dll = MinGW gcc 生成动态链接库 dll 的一些问题汇总

    MinGW gcc 生成动态链接库 dll 的一些问题汇总 https://blog.csdn.net/liyuanbhu/article/details/42612365 网络上关于用 MinGW  ...

最新文章

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

热门文章

  1. SuperVideo - H5视频播放插件
  2. MODIS MOD11A2地温产品_江仔91_新浪博客
  3. U盘测试、磁盘测试工具-使用于ROM类型存储器,U盘测试,SD卡测试
  4. HNUCM天梯赛选拔赛第一场
  5. 你是时侯该在网络上说谎了!
  6. Dynamsoft Barcode Reader教程:HTML5中的移动QR码扫描仪
  7. 大学生生涯职业规划计算机专业,大学生职业生涯规划书-计算机专业 (7).pdf
  8. 实用测井解释原理与实践-1.1基本测井过程
  9. CSS常见的浏览器兼容汇总
  10. 腾讯二面:MySQL的半同步是什么?