3

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

4

3 回答 3

5

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

INC_PATH=/my/path/to/file
CFLAGS=-I$(INC_PATH)

all:
    gcc $(CFLAGS) -o prog src1.c src2.c

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

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

如果不想使用 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 是一种更可取的方法。

于 2012-07-17T10:03:14.347 回答
3

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

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

荣誉:jcrossley3

于 2014-11-26T17:48:48.030 回答
0

我现在不在 Linux 中,我懒得重新启动以检查一切是否正确,但是您是否尝试过创建符号链接?例如,如果您在 Ubuntu 上:

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

因此,当您想包含 stuf 时,可以使用:

#include <mystuff/SpamFlavours.h>
于 2012-07-17T10:08:13.647 回答