我的/ my / path / to / file文件夹中有几个头文件。我知道如何将这些文件包含在新的C程序中,但每次我需要在包含它之前键入头文件的完整路径。我可以在linux中设置一些路径变量,以便自动查找头文件吗?
答案 0 :(得分:4)
您可以创建一个makefile。一个最小的例子是:
INC_PATH=/my/path/to/file
CFLAGS=-I$(INC_PATH)
all:
gcc $(CFLAGS) -o prog src1.c src2.c
从这里你可以通过多种方式改进这个makefile。最重要的可能是声明编译依赖关系(因此只重新编译已修改的文件)。
作为参考,您可以在此处找到GNU make documentation的链接。
如果您不想使用makefile,可以随时设置环境变量,以便更轻松地输入编译命令:
export MY_INC_PATH=/my/path/to/file
然后你可以编译你的程序,如:
gcc -I${MY_INC_PATH} -o prog src1.c src2.c ...
您可能希望在文件MY_INC_PATH
中定义.bashrc
变量,或者更好的是,在包含变量定义的方便位置创建文件。然后,您可以使用source
在当前shell中设置该变量:
source env.sh
但是,我认为使用makefile是一种更好的方法。
答案 1 :(得分:3)
有一个类似的问题,可能会更好地解决(如果您对永久解决方案感兴趣):https://stackoverflow.com/a/558819/1408096
尝试设置 C_INCLUDE_PATH (对于C头文件)或 CPLUS_INCLUDE_PATH (对于C ++头文件)。
奖励:jcrossley3
答案 2 :(得分:0)
我现在不在Linux中,我不能再重新启动以检查一切是否正确,但您是否尝试过制作符号链接?例如,如果您使用的是Ubuntu:
$ cd /usr/include
$ sudo ln -s /my/path/to/file mystuff
那么当你想要包含stuf时,你可以使用:
#include <mystuff/SpamFlavours.h>