在linux中更新include-path



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

您可以创建一个makefile。一个最小的例子是:

INC_PATH=/my/path/to/file
CFLAGS=-I$(INC_PATH)
all:
    gcc $(CFLAGS) -o prog src1.c src2.c

从这里,您可以通过多种方式改进这个makefile。最重要的可能是声明编译依赖关系(因此只有修改过的文件才会重新编译)。

作为参考,这里有一个GNU make文档的链接。

如果您不想使用makefiles,您可以始终设置一个环境变量,以便更容易地键入编译命令:

export MY_INC_PATH=/my/path/to/file

然后你可以编译你的程序,比如:

gcc -I${MY_INC_PATH} -o prog src1.c src2.c ...

您可能希望在文件.bashrc中定义MY_INC_PATH变量,或者最好在方便的地方创建一个包含变量定义的文件。然后,您可以使用source在当前shell中设置该变量:

source env.sh

然而,我认为使用makefile是一种更可取的方法。

还有一个类似的问题,可能会得到更好的解决(如果您对永久解决方案感兴趣):https://stackoverflow.com/a/558819/1408096

尝试设置C_INCLUDE_PATH(对于C头文件)或CPLUS_INCLUDE-PATH

值得称赞的是:jcrossley3

我现在不在Linux,我不想重新启动来检查是否一切正常,但你试过制作符号链接吗?例如,如果你在Ubuntu上:

$ cd /usr/include
$ sudo ln -s /my/path/to/file mystuff

因此,当你想包括stuf时,你可以使用:

#include <mystuff/SpamFlavours.h>

最新更新