2011-07-25 41 views
2

当我为库文件(比如〜/ lib)创建我自己的非标准路径时,我可以运行ldconfig -n ~/lib并将此目录添加到ld用来搜索非标准库。GCC/G ++相当于ldconfig -n

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

编辑:请注意,我的无知假定此解决方案只有gcc/++。然而,我很高兴为任何解决方案,所以如果有一种方法滥用ldconfig的某些属性或任何其他方法,我并不反对它!

回答

2

一般来说,只要做man gcc。如果您愿意更改Makefiles,则需要使用-L <path>标志。还有一个类似于ldconfig的解决方案 - 使用LIBRARY_PATH env。变量。

同样,有CPLUS_INCLUDE_PATHC_INCLUDE_PATHCPATH这是声明目录列表来搜索头文件。

+0

对不起,我的问题可能需要一些澄清 - 这是专门关于包括,而不是链接。 -L必须在每个链接的基础上使用(因此不是我可以添加到多个开发人员共享的makefile的选项)。 -I也一样,这就是我寻找替代品的原因。 –

+0

@Ben Stott - 我已经更新了答案 – Drakosha

0

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

最好的选择是加入一个alias到您的环境(如果使用的是bash),如:

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

或创建一个特设的脚本。