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告诉链接器要链接哪些库文件。不过使用时链接阶段这两个参数都会加上,所以你即使将这两个的值互换,也没有问题。
说到这里,进一步说说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将会设置这个选项, 链接时会有这个参数,编译出来的可执行程序的库文件搜索路径就得到扩展了。
PS:-Wl,R在GraphicsMagick环境下,用为-R, 也就是LDFLAGS = -L/var/xxx/lib -R/var/xxx/lib
CFLAGS 或 CPPFLAGS的用法
CPPFLAGS=’-I/usr/local/libjpeg/include -I/usr/local/libpng/include’
CC 与 CXX:
<span style="color:#000000"><code>这是 C 与 C++ 编译器命令。默认值一般是 “gcc” 与 “g++”。
</code></span>
- 1
CPPFLAGS will be given to the C preprocessor
<span style="color:#000000"><code>这是用于预处理阶段的选项。
</code></span>
- 1
CFLAGS 与 CXXFLAGS
<span style="color:#000000"><code>CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。
</code></span>
- 1
makefile的选项CFLAGS、CPPFLAGS、LDFLAGS和LIBS的区别相关推荐
- Makefile编译选项:CFLAGS、LDFLAGS、LIBS
目录 一.CFLAGS 二.LDFLAGS 三.LIBS 四.参考资料 前言 本文只涉及cflags.ldflags.libs,关于makefile文件非常建议看看大神写的系列博客<跟我一起写M ...
- Makefile 选项 CFLAGS 、LDFLAGS 、LIBS
CFLAGS 表示用于C编译器的选项 CXXFLAGS 表示用于C++编译器的选项 这两个变量实际上涵盖了编译和汇编的两个步骤 CFLAGS:指定头文件(.h)的路径,如:CFLAGS=-I/usr/ ...
- makefile的选项CFLAGS和LDFLAGS
CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项. 这两个变量实际上涵盖了编译和汇编两个步骤. 先来看几个相关的环境变量:PATH.LDFLAGS.CFLA ...
- gcc ------ 编译与链接选项及CFLAGS、LDFLAGS、LIBS
gcc ------ 编译与链接选项及CFLAGS.LDFLAGS.LIBS GCC手册:https://gcc.gnu.org/onlinedocs/ GCC编译选项CFLAGS参数 选项 说明 - ...
- makefile中的CPPFLAGS LDFLAGS CFLAGS选项详解
让我们先看看 Makefile 规则中的编译命令通常是怎么写的. 大多数软件包遵守如下约定俗成的规范: #1,首先从源代码生成目标文件(预处理,编译,汇编),"-c"选项表示不执行 ...
- makfile的编译选项:CFLAGS、CPPFLAGS、LDFLAGS、LIBS
1.LDFLAGS & LIBS 关于makefile的依赖规则以及目标生成的步骤,这篇先不介绍,这里主要关注我在看makefile时遇到的一堆CFLAGS与LDFLAGS定义进行说明. 费了 ...
- Makefile 编译与链接选项及CFLAGS与LDFLAGS示例说明
GCC编译选项CFLAGS参数 GCC链接选项LDFLAGS参数 实例 最近看了makefile的手册之后,发现还是不知道怎么写makefile,而且就连看也看的是云里雾里,就我现在工作当中看到的一些 ...
- Makefile 编译与链接选项及CFLAGS与LDFLAGS说明
CFLAGS与LDFLAGS的说明,他们都是是隐含规则的变量,且是一种命令参数变量. makefile内嵌隐含规则的命令中,所使用的变量都是预定义的变量.我们将这些变量称为"隐含变量&quo ...
- linux编译参数CPPFLAGS、CFLAGS、LDFLAGS参数的理解
参考到下面博客,把编译步骤分解的很细 linuxC编译参数CPPFLAGS.CFLAGS.LDFLAGS参数的理解 - yongfengnice - 博客园 CPPFLAGS : 预处理器需要的选项 ...
最新文章
- Lyft推出一种新的实时地图匹配算法
- JavaScript学习笔记06【高级——JavaScript中的事件】
- jdk1.7 String switch的实现
- seata 如何开启tcc事物_分布式事务Seata-TCC源码分析
- Pentium奔腾架构/流水线及其优化
- D. Little Artem and Dance
- strncpy 用法
- 你们这些程序员,真得每天都在读代码吗?
- 爆料喽!!!开源日志库Logger的剖析分析
- 个人永久性免费-Excel催化剂功能第44波-可见区域复制粘贴不覆盖隐藏内容
- 使用Canvas绘制简单工程符号(续)
- Google Code 开源项目
- 苏州企业如何识别不良商标代理机构
- 魔窗研发副总裁沈哲:移动端SDK的优化之路
- 用大白话聊聊JavaSE -- 如何理解Java Bean(一)
- 什么是 PHP? 为什么用 PHP? 有谁在用 PHP?
- vscode输入英文时字体之间的间隔突然变大
- 统计每天的新老用户,日活,周活,月活
- 使用ProxySelector选择代理服务器
- 手机性能测试指标及操作
热门文章
- 拼多多发展量子计算机,IBM首次接入三方共建量子生态系统,量子计算或将决定未来的科技走向!...
- 3.9L的机箱+15.6寸的便携显示器+无线键鼠,便携与性能的极致结合!
- 邮件系统自建,企业如何避免忽悠正确选型
- 用CFileFind类实现的目录树遍历
- 全球及中国金刚石合成机行业盈利模式及需求规模预测报告(2022-2027)
- 使用selenium爬虫抓取数据
- DSP篇--C6678功能调试系列之EMIF、GPIO调试
- 小波变换、小波分解[python实现]//未完待续
- 蜂巢式技术藉嵌入式SIM卡大举进军物联网
- 小米12sUltra什么时候发布 小米12sUltra配置如何