CFLAGS、CXXFLAGS、LDFLAGS与LIBS
CFLAGS、CXXFLAGS、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将会设置这个选项,链 接时会有这个参数,编译出来的可执行程序的库文件搜索路径就得到扩展了。
CFLAGS、CXXFLAGS、LDFLAGS与LIBS相关推荐
- Makefile编译选项:CFLAGS、LDFLAGS、LIBS
目录 一.CFLAGS 二.LDFLAGS 三.LIBS 四.参考资料 前言 本文只涉及cflags.ldflags.libs,关于makefile文件非常建议看看大神写的系列博客<跟我一起写M ...
- gcc ------ 编译与链接选项及CFLAGS、LDFLAGS、LIBS
gcc ------ 编译与链接选项及CFLAGS.LDFLAGS.LIBS GCC手册:https://gcc.gnu.org/onlinedocs/ GCC编译选项CFLAGS参数 选项 说明 - ...
- Makefile 选项 CFLAGS 、LDFLAGS 、LIBS
CFLAGS 表示用于C编译器的选项 CXXFLAGS 表示用于C++编译器的选项 这两个变量实际上涵盖了编译和汇编的两个步骤 CFLAGS:指定头文件(.h)的路径,如:CFLAGS=-I/usr/ ...
- CFLAGS、CXXFLAGS和LDFLAGS、LIBS和-L、-rpath、-rpath-link和LD_LIBRARY_PATH
日常工作实践中,可以通过变量和编译器配合使用,控制编译器的行为.这些参数必须在gcc命令行中显示指定,使用export命令指定这些变量是无效的. CLFAGS和CXXFLAGS CLFAGS表示C编译 ...
- makfile的编译选项:CFLAGS、CPPFLAGS、LDFLAGS、LIBS
1.LDFLAGS & LIBS 关于makefile的依赖规则以及目标生成的步骤,这篇先不介绍,这里主要关注我在看makefile时遇到的一堆CFLAGS与LDFLAGS定义进行说明. 费了 ...
- makefile的选项CFLAGS、CPPFLAGS、LDFLAGS和LIBS的区别
makefile的选项CFLAGS.CPPFLAGS.LDFLAGS和LIBS的区别 LDFLAGS是选项,LIBS是要链接的库.都是喂给ld的,只不过一个是告诉ld怎么吃,一个是告诉ld要吃什么. ...
- linux编译参数CPPFLAGS、CFLAGS、LDFLAGS参数的理解
参考到下面博客,把编译步骤分解的很细 linuxC编译参数CPPFLAGS.CFLAGS.LDFLAGS参数的理解 - yongfengnice - 博客园 CPPFLAGS : 预处理器需要的选项 ...
- 如何在win10安装libaio,并且使用CFLAGS和LDFLAGS环境变量指示其位置,并且如何设置DS_BUILD_AIO=0禁用async_io...
libaio是一个 Linux 库,因此不能在 Windows 10 上安装.如果您正在寻找与 Windows 相关的异步 I/O 库,可以考虑使用 Windows 平台 API,例如异步 I/O(I ...
- linux 编译 cflags,python – 如何设置CFLAGS和LDFLAGS来编译pycrypto
我正在尝试将架构库安装到旧机器上. /usr/lib中有一些遗留库,例如libgmp. (py27)[qrtt1@hcservice app]$ls /usr/lib|grep gmp libgmp. ...
- CFLAGS,CXXFLAGS与CPPFLAGS的区别
太长不看版: CFLAGS,CXXFLAGS是针对某语言的,CPPFLAGS是全语言通用的 编译C程序的隐式make规则是 %.o:%.c$(CC) $(CPPFLAGS) $(CFLAGS) -c ...
最新文章
- R语言可视化绘制基本图形
- HOOK -- IAT HOOK 本进程MessageBox
- 马哥linux高薪中级-DNS
- Binder 和parcel 讲解
- redhat9安装mysql_redhat 9.0 安装mysql
- 【视频】Vue作者分享:Vue 3.0 进展
- 《灵枢-五色》明堂藩蔽图
- Flutter高级第7篇:点击穿透问题、页面禁止左右滑动
- centos7安装mysql允许远程连接_Centos7安装mysql8.0,开启远程访问
- Doc2Vec模型介绍及使用
- Foxmail 设置自动落款签名
- Error Code: 1054. Unknown column 'xxx' in 'field list'
- 二氧化硅纳米微球光子晶体乳液聚合聚苯乙烯核壳结构/中空二氧化硅/钛纳米微球的制备方法
- 公众号绑定开发者流程
- Impala 在网易有数 BI 应用场景的优化经验
- 自媒体常用小程序:去水印、配音、文案提取
- BLV 3D打印机Klipper配置参考
- c语言收银系统程序编码,C语言 超市收银系统.doc
- OSChina 周二乱弹 ——爸爸陆陆续续回家了
- BACKUP - Backup Files