Makefile 中gcc -lm -ldl是什么意思?
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 ,是显式加载动态库的动态函数库
Makefile 中gcc -lm -ldl是什么意思?相关推荐
- linux gcc ldl,Makefile 中gcc -lm -ldl是什么意思?
gcc -lm -ldl是什么意思?----包含动态链接库 到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下. 初学linux和gcc,C代码调用math.h中的 ...
- gcc -lm -ldl是什么意思?----包含动态链接库
到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下. 初学linux和gcc,C代码调用math.h中的函数有问题,如sqrt函数.若如sqrt(3.0)则可以编译 ...
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
在源代码里面如果这样是定义的: #ifdef MACRONAME //可选代码 #endif 那在makefile里面 gcc -D MACRONAME=MACRODEF 或者 gcc ...
- Makefile:GCC CFLAGS变量和LDFLAGS变量
LOCAL_CFLAGS参数说明 其实 CFLAGS += -D__MT2625_ENABLED__ 这个CFLAGS是gcc编译的选项,在makefile中用CFLAGS这个变量来表示这个编译选项. ...
- Makefile中的一些小知识点,及常用的makefile举例
一.gcc -s(注意是小写的s)命令是什么意思?为什么用此命令编译后的程序比用优化后的程序还小? 这个参数会把符号表从最终的可执行文件中删除.没有符号表,你就不能用gdb调试了,常见的用法是: 比方 ...
- 在cmakelists和makefile中设置opencv
1. 查询电脑上的opencv版本: pkg-config --modversion opencv 2. 在电脑上安装多个版本的opencv,可以通过指定安装路径进行设置: 下载源码后进入文 ...
- makefile中的include *******
对于makefile中的include ***,***指的是包含的文件,当执行makefile时,先执行include ***这句,加载包含的文件(夹),如果不存在则会报错! 如果在include前面 ...
- makefile中的零星知识点
文章目录 1 make命令的使用 2 变量的导出(export) 3 Makefile中可以使用shell命令 4 在Makefile中怎么放置第1个目标 5 假想目标 1 make命令的使用 执行m ...
- C语言高级技巧-在Makefile中引用你的头文件
在Makefile中添加头文 代码仓库:Makefile中添加头文件引用 我们常这样写C程序: #inlcude <stdio.h>int main(int argc, char *arg ...
最新文章
- P5431 【模板】乘法逆元2(小学数学题,毒瘤鱼,卡常之王yyds)
- STK 卫星覆盖分析笔记
- optee的异常向量表-(irq,fiq,svc...)
- 4、修改用户(RENAME USER)
- python中常用的语句元素
- oracle之 SYSAUX表空间维护
- C# Datagridview完整攻略
- QML工作笔记-Image中fillMode的使用
- SSH远程登录原理与运用
- protobuf vc2008编译
- 为什么我劝你放弃了Restful API?
- 人工智能的未来-揭示人类思维的奥秘How to create a mind - Ray Kurzweil
- 汉字为什么能流传至今_为什么中国的文字流传至今?
- 【Unity3D】游戏配表Excel转Txt,并且打成ab包
- win10系统云服务器配置,win10系统云服务器配置
- WireShark和Fidder进行网络抓包并对协议进行验证
- background-position进行图片定位
- python中py是什么意思_python中__init__.py是干什么的
- 原生js-购物车案例(四)增减商品数量,小计价格计算
- java陆小凤的游戏_《陆小凤传奇》游戏流程、经验心得