Makefile 选项 CFLAGS 、LDFLAGS 、LIBS
CFLAGS 表示用于C编译器的选项
CXXFLAGS 表示用于C++编译器的选项
这两个变量实际上涵盖了编译和汇编的两个步骤
CFLAGS:指定头文件(.h)的路径,如:CFLAGS=-I/usr/include -I/path/include 。
相同地,安装一个包时会在安装路径下建立一个include文件夹,当安装过程中出现故障时,试着把曾经安装的包的include文件夹增加到该变量中来。
LDFLAGS:gcc 等编译器会用到的一些优化參数,也能够在里面指定库文件的位置。
使用方法:LDFLAGS=-L/usr/lib -L/path/to/your/lib。每安装一个包都差点儿一定的会在安装文件夹里建立一个lib文件夹。假设明明安装了某个包,而安装还有一个包时,它愣是说找不到,能够抒那个包的lib路径增加的LDFALGS中试一下。
LIBS:告诉链接器要链接哪些库文件。如LIBS = -lpthread -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将会设置这个选项。链接时会有这个參数,编译出来的可运行程序的库文件搜索路径就得到扩展了。
Makefile 选项 CFLAGS 、LDFLAGS 、LIBS的更多相关文章
- Makefile选项CFLAGS,LDFLAGS,LIBS
CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项.这两个变量实际上涵盖了编译和汇编两个步骤. CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS ...
- openwrt makefile选项
Package/conffiles (optional) 由该包安装的配置文件的列表,一行一个文件. BuildPackage宏 最重要的一个宏是 BuildPackage.它会在 Makefile ...
- 常用gcc选项
<Linux GCC常用命令> Makefile有三个非常有用的变量.分别是$@,$^,$<代表的意义分别是: $@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件 ...
- Yocto开发笔记之《嵌入式linux libcurl编程》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- M2Crypto安装方法以及配置LDFLAGS、CFLAGS
python3.7+mac环境: $ brew install openssl && brew install swig $ brew --prefix openssl /usr/lo ...
- CentOS 6.7 中安装Emacs 24.5
Emacs 版本:http://mirror.bjtu.edu.cn/gnu/emacs/emacs-24.5.tar.gz CentOS 内核版本:2.6.32-573.el6.x86_64 参考资 ...
- [C] c99int(让VC等编译器自动兼容C99的整数类型)V1.02。源码托管到github、添加CMake编译配置文件、使用doxygen规范注释
新版本—— http://www.cnblogs.com/zyl910/p/zlstdint_v100.html[C] zlstdint(让VC.TC等编译器自动兼容C99的整数类型)V1.0.支持T ...
- CentOS 中安装和卸载 Emacs
日志更新记录: [1] 增加 CentOS7.2 (内核版本:3.10.0-514.16.1.el7.x86_64)下Emacs25.2 的安装过程,它与本文的步骤完全一样. Emacs 版本:htt ...
- linux环境下写C++操作mysql(二)
main.cpp #include<stdio.h> #include<stdlib.h> #include"mysqlInterface.h" int m ...
随机推荐
- 如何通过Spring读取Properties文件
1 在Spring中配置文件中, 配置配置文件的引用 <util:properties id="settings" location="/WEB-INF/c ...
- 同一个IP不同端口号使用session失效
背景 我有两个工程projectA.projectB,projectA放在TomcatA中,projectB放在TomcatB中,TomcatA.TomcatB在一台server上. 工程都映射的根路 ...
- modCount干嘛的
在ArrayList.LinkedList.HashMap等等的内部增删改中我们总能看到modCount的身影,modCount字面意思就是修改次数,但为什么要记录modCount的修改次数呢? 大家 ...
- Chrome谷歌浏览器拓展组件的2种快速安装方法(.crx)
谷歌浏览器拓展有至少2种安装方法,现在简单的介绍下. 第一种.当然是进入谷歌官方的应用商店直接安装 这种方法简单快捷,而且官方支持度够高,唯一的缺点是大陆用户需要“FQ”. 谷歌拓展组件应用商店地址: ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- Spring的模块组成
Spring的模块组成 1.核心容器:核心容器提供 Spring 框架的基本功能(Spring Core).核心容器的主要组件是 BeanFactory,它是工厂模式的实现. BeanFactory ...
- BZOJ 4403: 序列统计 数学 lucas
4403: 序列统计 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4403 Description 给定三个正整数N.L和R,统计长度在 ...
- BZOJ 2342: [Shoi2011]双倍回文 马拉车算法/并查集
2342: [Shoi2011]双倍回文 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1123 Solved: 408 题目连接 http://w ...
- Topcoder SRM 643 Div1 250<peter_pan>
Topcoder SRM 643 Div1 250 Problem 给一个整数N,再给一个vector<long long>v; N可以表示成若干个素数的乘积,N=p0*p1*p2*... ...
- Git_期末总结
终于到了期末总结的时刻了! 经过几天的学习,相信你对Git已经初步掌握.一开始,可能觉得Git上手比较困难,尤其是已经熟悉SVN的童鞋,没关系,多操练几次,就会越用越顺手. Git虽然极其强大,命令繁 ...