makefile的选项LDFLAGS和LIBS的区别

makefile与configure的LDFLAG、CFLAG、LIBS用法 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。如果你的头文件不处于gcc默认的路径之中,就需要使用此参数指定。那么gcc默认的搜索头文件的路径是什么呢?gcc 等编译器会用到的一些优化参数,也可以在里面指定非默认路径的库文件的位置。用法:LDFLAGS=”-L/usr/lib -L/path/to/your/lib”。参考:https://blog.youkuaiyun.com/qq_31567335/article/details/82470477。 阅读详情

LDFLAGS是选项,LIBS是要链接的库。都是喂给ld的,只不过一个是告诉ld怎么吃,一个是告诉ld要吃什么。

网上不难搜索到上面这段话。不过“告诉ld怎么吃”是什么意思呢?

看看如下选项:

LDFLAGS = -L/var/xxx/lib -L/opt/mysql/lib

LIBS = -lmysqlclient -liconv

这就明白了。LDFLAGS告诉链接器从哪里寻找库文件,LIBS告诉链接器要链接哪些库文件。不过使用时链接阶段这两个参数都会加上,所以你即使将这两个的值互换,也没有问题。


说到这里,进一步说说LDFLAGS指定-L虽然能让链接器找到库进行链接,但是运行时链接器却找不到这个库,如果要让软件运行时库文件的路径也得到扩展,那么我们需要增加这两个库给"-Wl,R"

LDFLAGS = -L/var/xxx/lib -L/opt/mysql/lib -Wl,R/var/xxx/lib -Wl,R/opt/mysql/lib

如果在执行./configure以前设置环境变量export LDFLAGS="-L/var/xxx/lib -L/opt/mysql/lib -Wl,R/var/xxx/lib -Wl,R/opt/mysql/lib" ,注意设置环境变量等号两边不可以有空格,而且要加上引号哦(shell的用法)。那么执行configure以后,Makefile将会设置这个选项,链接时会有这个参数,编译出来的可执行程序的库文件搜索路径就得到扩展了。

kali2020.2安装出现的问题并附详细解决办法 kali2020.2的安装 阅读详情

相关推荐

10分钟训练你的AI歌手:RVC WebUI声音克隆保姆级教程

本文提供了一份详细的RVC WebUI声音克隆保姆级教程,指导用户如何在10分钟内利用Retrieval-based-Voice-Conversion技术训练专属AI歌手。教程涵盖从环境配置、数据准备、模型训练到最终推理应用的全流程,即使是新手也能快速上手,实现高质量的声音克隆与歌曲生成。

weixin_29073241的博客 821

GCC编译器CFLAGS、LDFLAGS详解

在Linux开发中,我们经常用到Makefile来管理代码,进行代码的编译。一般的Makefile中都会包含CFLAGS、LDFLAGS两个选项,用于指导编译和链接的过程。有时候我们总是不注意这两个选项的一些区别,将某些编译选项放到链接选项中,导致编译生成的程序出现无法预知的问题;

小嵌同学的博客 2万+

学习Ultralytics (下载)

Ultralytics由创立,最初是为了简化目标检测模型的开发和应用,专注于构建高效、易用、性能卓越的深度学习框架。其主要产品之一是 YOLO 系列模型,尤其是最新的YOLOv5和YOLOv8,因其在精度、速度和可扩展性方面的出色表现而广受欢迎。

2301_76846375的博客 2865

CFLAGS用法

CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。 CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变量中来。 LDFLAGS :gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。用法:LDFLA

qq_40309341的博客 6071

Visual Studio 命令提示符工具区别与使用场景

Visual Studio会提供一系列命令提示符工具,这些工具应用在哪些场景呢?本文进行了相关介绍。

cicada15的博客 3493

使用Docker搭建SearXNG搜索引擎

【代码】使用Docker搭建SearXNG搜索引擎。

janthinasnail的博客 1170

Makefile之cflags参数和ldflags参数

GCC编译选项CFLAGS参数 选项 说明 -c 用于把源码文件编译成 .o 对象文件,不进行链接过程 -o 用于连接生成可执行文件,在其后可以指定输出文件的名称 -g 用于在生成的目标可执行文件中,添加调试信息,可以使用GDB进行调试 -Idir 用于把新目录添加到includ...

Robben.Han 4万+

人工智能100问☞第5问:什么是AI三要素?

人工智能的核心三要素是​​数据、算法和算力​​,分别作为AI的“燃料”、“大脑”和“动力”,三者协同驱动智能系统的学习、推理与决策能力。

bjdx_001的博客 1994

Makefile 编译与链接选项及CFLAGS与LDFLAGS示例说明

最近看了makefile的手册之后,发现还是不知道怎么写makefile,而且就连看也看的是云里雾里,就我现在工作当中看到的一些makefile文件,只能看个大概的意思,一旦涉及到文件添加、静态库、动态库等增加、删除;文件搜索路径等的修改就没法下手了,因此必须对我比较关注的地方进行深度学习,知其然还要知其所以然,知道怎么从无到有写出来,而且别人的makefile还要知道怎么根据需求的变化进行修改。...

zhaoyun_zzz的专栏 6万+

Ubuntu Rtx3090 Cuda11.7 安装 pytorch3d

pytorch ubuntu pytorch3d 安装

G果的博客 2273

微信小程序 - 获取用户头像昵称等信息(带授权检测)

前言 接口调整官方文档:https://developers.weixin.qq.com/community/develop/doc/0000a26e1aca6012e896a517556c01 在以前,是否授权可以直接弹出询问用户,但现在微信更改了策略,必须由用户点击按钮触发。下面将用代码来实现用户授权及获取用户信息。 功能介绍 无论确认授权还是拒绝授权,都会跳转对应页面,不让用户卡在界面。 点击授权后,下次不在出现授权页面了,如果拒绝,下次依然出现。 以下代码可直接复制粘贴,具体功能如下:

🏆 前端领域优质创作者 1万+

makefile的选项CFLAGS、CPPFLAGS、LDFLAGS和LIBS的区别

makefile的选项CFLAGS、CPPFLAGS、LDFLAGS和LIBS的区别 LDFLAGS是选项,LIBS是要链接的库。都是喂给ld的,只不过一个是告诉ld怎么吃,一个是告诉ld要吃什么。 网上不难搜索到上面这段话。不过“告诉ld怎么吃”是什么意思呢? 看看如下选项: LDFLAGS = -L/var/xxx/lib -L/opt/mysql/lib DLIBS = -lmysqlclient -liconv 这就明白了。LDFLAGS告诉链接器从哪里寻找库文件,LIBS告诉链接器要链接

qq_37061368的博客 2008

YOLOv11改进,YOLOv11添加ASFF检测头,并添加小目标检测层(四头检测),适合目标检测、分割等任务,全网首发

YOLOv11改进,YOLOv11添加ASFF检测头,并添加小目标检测层(四头检测),适合目标检测、分割等任务,全网首发

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4735
上一篇: Linux下动态库查看方法
下一篇: vim删除全部内容
狂奔的木木
博客等级 码龄18年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值