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文件夹增加到该变量中来。

LIBS:告诉链接器要链接哪些库文件,如LIBS = -lpthread -liconv

简单地说。LDFLAGS是告诉链接器从哪里寻找库文件。而LIBS是告诉链接器要链接哪些库文件。只是使用时链接阶段这两个參数都会加上,所以你即使将这两个的值互换,也没有问题。

有时候LDFLAGS指定-L尽管能让链接器找到库进行链接,可是执行时链接器却找不到这个库,假设要让软件执行时库文件的路径也得到扩展,那么我们须要增加这两个库给"-Wl,R":

export C_INCLUDE_PATH="/mnt/toolchain/lin32/beecrypt-4.1.2/include" 

export LDFLAGS="-L/mnt/toolchain/lin32/beecrypt-4.1.2 "

export CPLUS_INCLUDE_PATH="~/local/include"

export  LD_LIBRARY_PATH="/usr/bin"

./configure

那怎样在那些变量中增加这些路径呢?以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”

linux命令学习:PATH and LDFLAGS and CFLAGS的更多相关文章

  1. 别出心裁的Linux命令学习法

    别出心裁的Linux命令学习法 操作系统操作系统为你完成所有"硬件相关.应用无关"的工作,以给你方便.效率.安全.操作系统的功能我总结为两点:管家婆和服务生: 管家婆:通过进程.虚 ...

  2. Linux命令学习

    Linux命令学习 Ubuntu常用快捷键 •Ctrl+Alt+T: 打开终端 •Ctrl+Shift+T: 新建标签页 •Tab: 终端中命令补全 •Alt+数字N: 终端中切换到第N个标签页 •↑ ...

  3. 安装虚拟机&Linux命令学习

    安装虚拟机&Linux命令学习 基于VirtualBox虚拟机安装Ubuntu 1.下载安装VirtualBox 根据自己电脑(32位操作系统)的实际情况,我在网上找了相应的VirtualBo ...

  4. Linux命令学习总结之rmdir命令的相关资料可以参考下

    这篇文章主要介绍了Linux命令学习总结之rmdir命令的相关资料,需要的朋友可以参考下(http://www.nanke0834.com) 命令简介: rmdir命令用用来删除空目录,如果目录非空, ...

  5. linux命令学习之:chmod

    chmod命令用来变更文件或目录的权限.在Linux系统家族里,文件或目录权限的控制分别以读取R.写入W.执行X3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文件与目录 ...

  6. Linux命令学习笔记1

    1.Linux命令学习 2.Mkdir /data       -创建文件夹 在/下创建文件夹 data 3.Cd               -目录切换 列如cd / 4.Touch /data/1 ...

  7. 《Linux命令学习手册》系列分享专栏

    <Linux命令学习手册>系列分享专栏 <Linux命令学习手册>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/207 ...

  8. 20155229付钰涵-虚拟机安装及LINUX命令学习

    安装Ubuntu遇到的问题 问题一: 新建虚拟电脑的版本只有32-bit,与老师所给教程中的64-bit不符.为此我上百度搜寻了答案. 第一种方法: 控制面板--程序与功能--启动或关闭windows ...

  9. Linux命令学习笔记目录

    Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 ...

随机推荐

  1. ViewPager PagerAdapter not updating the View

    There are several ways to achieve this. The first option is easier, but bit more inefficient. Overri ...

  2. java.util.HashMap的简单介绍

    1. java.util.HashMap的底层实现是数组+链表. 2. 简介put(key, value)方法的执行过程: 1)通过key值,使用散列算法计算出来一个hash值,用来确定该元素需要存储 ...

  3. 【转载】eclipse常用插件在线安装地址或下载地址

    一,反编译插件: A.Jadclipse 1.打开eclipse增加站点:http://jadclipse.sf.net/update,在线安装好JDT Decompiler 3.4.0 2.http ...

  4. 我的第一篇paper

    找实习虽然只为自己争取到一个秋季的绿色通道,但可喜的是,我投的几篇paper,终于中了一篇. 现在可以在英文数据库或google scholar上面搜索到自己名字,感觉很nice,研究生的心愿算是完成 ...

  5. Linux permission denied解决方法

    一.准备 比如建立一个test.sh的脚本文件,脚本代码如下: #! /bin/bash echo Hello,world! 代码功能实现的是:输出字符Hello,world! 二.运行脚本 在终端切 ...

  6. bootstrap modal 弹出其他页面

    此文是可以的,是复制的然后粘贴 1.不使用js 方式 1.1 按钮 <a class=" btn default" href="ui_modals_ajax_sam ...

  7. 安装了nodejs后在命令行运行npm报错

    安装了nodejs后在命令行运行npm报错:Error: Cannot find module 'internal/util/types' 解决方法:删除目录“C:\Users\mengxiaobo\ ...

  8. autofac生命周期入门(如何避免内存泄漏)

    如果你是一个IOC新手,那么生命周期可能会比较难以理解.以至于谈到这个问题时,一些老手也时常表示疑虑和害怕.一个令人不安的问题就是-对象没有在合适的时机被销毁.这样一来内存的使用率就会一直攀升,直到程 ...

  9. [No0000F2]ip安全监视器

    IPSec快速式策略 @echo off :again set num= set fastpolicyname= set issoft= set livetime= set fps= setlocal ...

  10. NLP去特殊字符

    在自然语言处理中,我们有时对文本进行处理,需要去除一些特殊符号,保留中文,这是在预处理过程中常用到的.分享给你,希望对你有帮助! import re def delete_sysbol(line): ...