zoukankan      html  css  js  c++  java
  • linux命令学习:PATH and LDFLAGS and CFLAGS

    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 and LDFLAGS and CFLAGS - Bob - 黄宝的博客PATH="$PATH:/path/to/your/bin:/another/path/to/bin"
    PATH and LDFLAGS and CFLAGS - Bob - 黄宝的博客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”

查看全文
  • 相关阅读:
    最短路径(Dijkstra和堆优化)
    最小生成树(prim和Kruskal)
    ac自动机(加强版)
    【敏捷】火星人敏捷开发手册- 教你怎么开会 然并卵知晓
    【敏捷】扑克牌估算
    向黄太吉学习线上营销模式
    黄太吉品牌创始人赫畅:创造下一个互联网奇迹
    吃煎饼思考人生:从黄太吉看商家的社会化营销
    月薪3000与月薪30000的文案区别
    聚美优品广告词和经典分析
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10752552.html
  • Copyright © 2011-2022 走看看