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

Jes*_*der 277 linux gcc environment-variables include

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

我知道我可以在编译时(或在makefile中)在命令行添加include目录,但我真的很喜欢这里的通用方法,就像在库中一样.

jcr*_*ey3 373

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

正如Ciro所提到的,CPATH将为C和C++设置路径.

更多细节在这里.

  • 和`CPATH`以及所有语言.请参阅4.8中的`man gcc`. (18认同)

dir*_*tly 54

使用您喜欢的包含为gcc创建别名.

alias mygcc='gcc -I /whatever/'
Run Code Online (Sandbox Code Playgroud)

  • 允许`-I`之后的空格并且工作得很好. (21认同)
  • 我认为`-I`之后应该没有空格 (11认同)
  • 只是习惯省略空间,就像你输入`-l <libnam>`链接一样注意创建一个别名是一个非常糟糕的解决方案,你真的会建立一个你最喜欢的包含列表和将它们添加到您的makefile中. (9认同)
  • _"作为单独参数的库的第二个替代方案仅适用于POSIX,不建议使用."_,根据GCC手册. (7认同)
  • 这不是一个好主意。这是不可组合的(如果您想要另一个目录怎么办?如果您想要其他 GCC 开关怎么办)并且可能会混淆对 gcc 做出假设的各种脚本或自动化工具。 (2认同)

小智 10

只是一个注意事项:CPLUS_INCLUDE_PATH并且C_INCLUDE_PATH不等同于LD_LIBRARY_PATH. LD_LIBRARY_PATHld(运行时的动态链接器)提供服务,而前两个为您的 C/C++ 编译器提供库位置的等价物是LIBRARY_PATH.


dim*_*mba 7

gcc spec文件可以完成这项工作,但是计算机上的所有用户都会受到影响.

看到这里

  • 链接已失效。如果您可以用实际信息更新此答案,那就太好了。 (6认同)