更新包括linux中的路径

时间:2012-07-17 09:55:34

标签: linux

我的/ my / path / to / file文件夹中有几个头文件。我知道如何将这些文件包含在新的C程序中,但每次我需要在包含它之前键入头文件的完整路径。我可以在linux中设置一些路径变量,以便自动查找头文件吗?

3 个答案:

答案 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>