如何在Linux中为GCC添加默认包含路径?


288

我希望gcc $HOME/include除了包含通常的包含目录之外,还包含来自的文件,但似乎没有类似物$LD_LIBRARY_PATH

我知道我可以在编译时(或在makefile中)在命令行中添加include目录,但是我真的想在这里采用通用方法,例如在库的情况下。


3
这是GCC 4.8.1手册的链接,其中记录了C_INCLUDE_PATH和CPLUS_INCLUDE_PATH环境变量。
mloskot 2010年

Answers:


391

尝试设置C_INCLUDE_PATH(对于C头文件)或CPLUS_INCLUDE_PATH(对于C ++头文件)。

正如Ciro所述,CPATH它将为C和C ++(以及任何其他语言)设置路径。

有关更多详细信息,请参见GCC文档


53

用您最喜欢的include为gcc创建一个别名。

alias mygcc='gcc -I /whatever/'

12
我认为之后应该没有空间-I
Iulius Curt

10
只是忽略空格的习惯,就像您键入-l<libnam>链接一样。注意,创建别名是一个非常糟糕的解决方案,实际上,您将构建“收藏夹”列表并将其添加到makefile中。
h4unt3r

9
“将库作为单独参数的第二种选择仅是为了符合POSIX,不建议这样做。” ,根据GCC手册。
乔里(Jori)2014年

这不是一个好主意。这是不可组合的(如果您想要另一个目录,该怎么办?如果您想要其他GCC开关,该怎么办),并且可能使对gcc进行假设的各种脚本或自动工具造成混淆。
einpoklum

8

一个gcc规范文件可以完成这项工作,但是计算机上的所有用户都将受到影响。

这里


6

只是记:CPLUS_INCLUDE_PATHC_INCLUDE_PATH不等价的LD_LIBRARY_PATHLD_LIBRARY_PATH服务ld(运行时的动态链接器),而与C / C ++编译器一起使用的库位置与前两者等效LIBRARY_PATH

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.