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相关推荐

  1. Makefile选项CFLAGS LDFLAGS LIBS

    FLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项. 这两个变量实际上涵盖了编译和汇编两个步骤. CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS ...

  2. Makefile选项 CFLAGS LDFLAGS

    makefile内嵌隐含规则的命令中,所使用的变量都是预定义的变量.我们将这些变量称为"隐含变量".这些变量允许对它进行修改:在Makefile中.通过命令行参数或者设置系统环境变 ...

  3. Makefile 选项 CFLAGS 、LDFLAGS 、LIBS

    CFLAGS 表示用于C编译器的选项 CXXFLAGS 表示用于C++编译器的选项 这两个变量实际上涵盖了编译和汇编的两个步骤 CFLAGS:指定头文件(.h)的路径,如:CFLAGS=-I/usr/ ...

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

    makefile的选项CFLAGS.CPPFLAGS.LDFLAGS和LIBS的区别 LDFLAGS是选项,LIBS是要链接的库.都是喂给ld的,只不过一个是告诉ld怎么吃,一个是告诉ld要吃什么. ...

  5. Makefile之cflags参数和ldflags参数

    GCC编译选项CFLAGS参数 选项          说明 -c              用于把源码文件编译成 .o 对象文件,不进行链接过程 -o              用于连接生成可执行文 ...

  6. makefile的选项CFLAGS和LDFLAGS

    CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项. 这两个变量实际上涵盖了编译和汇编两个步骤. 先来看几个相关的环境变量:PATH.LDFLAGS.CFLA ...

  7. gcc 编译相关CFLAGS LDFLAGS LIB

    CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项. 这两个变量实际上涵盖了编译和汇编两个步骤. CFLAGS: 指定头文件(.h文件)的路径,如:CFLAG ...

  8. Makefile编译选项:CFLAGS、LDFLAGS、LIBS

    目录 一.CFLAGS 二.LDFLAGS 三.LIBS 四.参考资料 前言 本文只涉及cflags.ldflags.libs,关于makefile文件非常建议看看大神写的系列博客<跟我一起写M ...

  9. C的编译链接及Makefile学习

    文章目录 参考博客 一.程序编译到执行文件过程^1,2^ 编译过程 链接过程 二.我们需要理解的编译器内容 GCC.G++.GDB GCC 选项 编译相关选项 GCC添加库依赖(-l 和 -L) GC ...

最新文章

  1. 移动端web,tap与click事件
  2. BZOJ-2780 Sevenk Love Oimaster(广义后缀自动机)
  3. 算法不会,尚能饭否之排序——折半插入排序(Binary Insert Sort)
  4. 长大了还不如小时候那么能够坚持了
  5. eclipse Tomcat 启动报错
  6. 2017-2018-2 20179205 《网络攻防实践》黑客信息及安全工具的使用
  7. G480改装固态硬盘、光驱变机械硬盘以及装系统(下)
  8. 投影仪芯片0.33和0.47DMD哪个好?当贝F3 Air实测体验分享
  9. 像素密度(衡量屏幕显示能力)
  10. Adobe Photoshop入门教程:零基础学会PS抠图拼贴
  11. Failed to load project configuration: cannot parse file xxx Message: 前言中不允许有内容。
  12. 项目构建CPU满载问题的根源的查找
  13. 腾讯游戏开发工程师:Linux 机器 CPU 毛刺问题排查
  14. 铂电阻温度对应阻值计算方法
  15. ABP 临时禁用TenantId IsDelete过滤
  16. 『常识』盈利模式、商业模式、经营模式的区别
  17. 融合互利共生和透镜成像学习的哈里斯鹰优化算法-附代码
  18. java工具类调用Service层类的方法
  19. ARP渗透与攻防(八)之ARP攻击防御
  20. 软银云商|总部参观考察

热门文章

  1. Django与Ajax
  2. ubuntu 开发板ping通虚拟机挂载nfs服务器
  3. lr_start_timer,lr_get_transaction_duration,lr_get_transaction_wasted_time函数使用总结
  4. python各种包安装顺序_史上最全的Python包管理工具:Anaconda教程
  5. python爬取b站403_Python如何爬取b站热门视频并导入Excel
  6. canvas换图时候会闪烁_Canvas实现图片上标注、缩放、移动和保存历史状态,纯干货(附CSS 3变化公式)...
  7. python安装pyecharts清华_基于Python安装pyecharts所遇的问题及解决方法
  8. java swing 案例详解_《Java Swing图形界面开发与案例详解》PDF_IT教程网
  9. 微型计算机广告牌实验报告,微型计算机实验报告1资料.doc
  10. 160 - 52 egis.1