我在/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>