【问题标题】:GCC/G++ equivalent of ldconfig -nGCC/G++ 相当于 ldconfig -n
【发布时间】:2011-07-25 13:52:11
【问题描述】:

当我为库文件(比如 ~/lib)创建自己的非标准路径时,我可以运行 ldconfig -n ~/lib,并且此目录被添加到 ld 用于搜索非标准库的位置列表中。

对于 GCC/G++(或适当的 gcc/++ 配置管理器)是否有类似的开关与包含目录相关,如果有,是什么?我知道-I 标志将包含非标准目录,但我宁愿不必遍历我所有的项目,而必须将所有形式的魔法添加到 makefile 以使其工作——然后发现这些更改(当然)不可移植到构建此代码的任何其他系统(与协作者等),因此编辑makefile并不是一个真正的选择......

编辑:请注意,我的无知假设此解决方案仅适用于 gcc/++。但是,我很高兴有任何解决方案,所以如果有一种方法滥用 ldconfig 的某些属性或其他什么,我不会反对它!

【问题讨论】:

    标签: gcc g++ ld


    【解决方案1】:

    一般情况下,只需执行man gcc。如果您愿意更改 Makefile,您将需要 -L <path> 标志。还有一个类似于ldconfig 的解决方案 - 使用LIBRARY_PATH env。变量。

    同样,CPLUS_INCLUDE_PATHC_INCLUDE_PATHCPATH 声明了用于搜索头文件的目录列表。

    【讨论】:

    • 抱歉,我的问题可能需要澄清一下 - 这是专门针对包含而不是链接的。 -L 必须在每个链接的基础上使用(因此不是我可以添加到在多个开发人员之间共享的生成文件中的选项)。 -I 也是如此,这就是我寻找替代方案的原因。
    【解决方案2】:

    我不认为你可以用include 文件做到这一点,除了修改 gcc/g++ 源代码并重新编译它。

    最好的选择是在您的环境中添加一个alias(如果使用 bash),例如:

    alias gcc="gcc -Idir1 -Idir2 -Idir3"
    alias g++="g++ -Idir1 -Idir2 -Idir3"
    

    或创建一个临时脚本。

    【讨论】:

      猜你喜欢
      • 2016-08-07
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 2020-08-05
      • 2018-07-12
      相关资源
      最近更新 更多