CFLAGS 表示用于 C 编译器的选项,
CXXFLAGS 表示用于 C++ 编译器的选项。
这两个变量实际上涵盖了编译和汇编两个步骤。

先来看几个相关的环境变量:PATH、LDFLAGS、CFLAGS

PATH:大家应该都很熟悉。安装一个包后可能会在安装目录建立一个bin目录,里面都是些可执行程序,为了让系统能找到这些程序,就需要我们把该路径加入到PATH环境变量中。下面会讲到如何加入。

LDFLAGS:gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。用法:LDFLAGS=“-L/usr/lib -L/path/to/your/lib”。每安装一个包都几乎一定的会在安装目录里建立一个lib目录。如果你明明安装了某个包,而安装另一个包时,它愣是说找不到,那就把那个包的lib路径加入的LDFALGS中试一下吧。

CFLAGS:和LDFLAGS类似,只不过要向里加如的是头文件(.h文件)的路径,如:CFLAGS=“-I/usr/include -I/path/to/your/include”。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变量中来。

那如何在那些变量中加入这些路径呢?以PATH变量为例。
一种方法是:直接在命令行下:
$ PATH="$PATH:/path/to/your/bin:/another/path/to/bin"
$ export PATH
这种方法的好处是方便,立即生效,缺点是把当前会话或shell关了之后就失效了,下次还得运行一遍。

另一种方法是:把下面的两行内容加入到~/.bashrc文件中,如果想让其影响到整个系统而不仅仅是当前用户,就把下面的内容加入到/etc/bash.bashrc(记得有的系统是/etc/bashrc这个文件)

PATH="$PATH:/path/to/your/bin:/another/path/to/bin"
export PATH

然后,重新启动shell即可。

需要注意的是,PATH变量的分隔符是:号,其他的是空格,
所以LDFLAGS应该是这样:
LDFLAGS=“$LDFLAGS -L/path/to/lib -L/path/to/lib”
CFLAGS应该是这样:
CFLAGS=“$CFLAGS -I/path/to/iclude -I/path/to/include”

makefile的选项CFLAGS和LDFLAGS相关推荐

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

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

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

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

  3. Makefile 选项 CFLAGS 、LDFLAGS 、LIBS

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

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

    GCC编译选项CFLAGS参数 GCC链接选项LDFLAGS参数 实例 最近看了makefile的手册之后,发现还是不知道怎么写makefile,而且就连看也看的是云里雾里,就我现在工作当中看到的一些 ...

  5. Makefile 编译与链接选项及CFLAGS与LDFLAGS说明

    CFLAGS与LDFLAGS的说明,他们都是是隐含规则的变量,且是一种命令参数变量. makefile内嵌隐含规则的命令中,所使用的变量都是预定义的变量.我们将这些变量称为"隐含变量&quo ...

  6. Makefile:GCC CFLAGS变量和LDFLAGS变量

    LOCAL_CFLAGS参数说明 其实 CFLAGS += -D__MT2625_ENABLED__ 这个CFLAGS是gcc编译的选项,在makefile中用CFLAGS这个变量来表示这个编译选项. ...

  7. gcc ------ 编译与链接选项及CFLAGS、LDFLAGS、LIBS

    gcc ------ 编译与链接选项及CFLAGS.LDFLAGS.LIBS GCC手册:https://gcc.gnu.org/onlinedocs/ GCC编译选项CFLAGS参数 选项 说明 - ...

  8. linux编译参数CPPFLAGS、CFLAGS、LDFLAGS参数的理解

    参考到下面博客,把编译步骤分解的很细 linuxC编译参数CPPFLAGS.CFLAGS.LDFLAGS参数的理解 - yongfengnice - 博客园 CPPFLAGS : 预处理器需要的选项 ...

  9. Makefile中的CFLAGS、$^、$< 、$@

    1.CFLAGS CFLAGS是一个在C编译过程中使用的变量,它定义了编译器的选项和标志.在编写Makefile文件时,CFLAGS可以用来指定编译器需要的编译选项. CFLAGS变量通常用于设置编译 ...

最新文章

  1. 如何使用VSCode汉化插件(中文)
  2. java 协程_你真的了解kotlin的协程么?
  3. ResNet最强改进版来了!ResNeSt:Split-Attention Networks
  4. WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference!
  5. windows系统中eclipse C开发环境的架设
  6. java 得到checkbox_【JavaWeb】获得选中的checkbox的value
  7. [2021-CVPR] Jigsaw Clustering for Unsupervised Visual Representation Learning 论文简析及关键代码简析
  8. math java 计算_Java中的数学计算函数汇总
  9. Java 1.2.1 读取输入
  10. 【软工3】迭代二 心得体会及感想
  11. html如何在屏幕中显示加载,在HTML5应用中加载屏幕
  12. TensorFlow 学习(八)—— 梯度计算(gradient computation)
  13. Spring4新特性——泛型限定式依赖注入
  14. android对象引用释放,Android程序的内存泄漏与规避方法
  15. java将doc转换成pdf_Java 将Word文档转换为PDF
  16. QTP教程03 - 手工参数化
  17. 迅为S5P6818核心板ARM Cortex-A53架构三星八核处理器
  18. pdf转换器免费版下载
  19. PyTorch搭建LSTM实现多变量时间序列预测(负荷预测)
  20. float转int 四舍五入问题

热门文章

  1. Git 使用帮助(下)
  2. CentOS安装Chrome
  3. SGI STL 学习笔记二 vector
  4. 编程3:仅用递归函数和栈操作逆序一个栈
  5. Python偏函数应用举例-路灯指示牌
  6. [Oracle11g] 通过伪列查询
  7. 20145233《网络对抗》Exp8 Web基础
  8. Source insight 支持汇编
  9. IOS弹出视图preferredContentSize
  10. js数组的定义方法与基本使用