Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将directoy指定为包含头文件目录_C_Header Files_Gnu_Include Path - Fatal编程技术网

如何将directoy指定为包含头文件目录

如何将directoy指定为包含头文件目录,c,header-files,gnu,include-path,C,Header Files,Gnu,Include Path,我不想每次都使用-I标志来包含我以前制作的头文件。我想指定一个目录,并将头文件保存在那里,并在默认情况下在那里进行GNU gcc搜索 注:我使用windows和GNU 5.1.0。因为我的名声不好,所以我无法发表评论, 我想你可以用你自己的制作文件 从这个链接中学习: 或者这个: 或者编写自己的脚本。如果所有头文件都存储在同一目录中,则不需要使用-I选项包含每个.h文件。 你可以这样做 $(GCC) $(CFLAGS) -I$(HDR_INC_PATH) -c <source file

我不想每次都使用
-I
标志来包含我以前制作的头文件。我想指定一个目录,并将头文件保存在那里,并在默认情况下在那里进行GNU gcc搜索


注:我使用windows和GNU 5.1.0。

因为我的名声不好,所以我无法发表评论, 我想你可以用你自己的制作文件 从这个链接中学习:

或者这个:


或者编写自己的脚本。

如果所有头文件都存储在同一目录中,则不需要使用-I选项包含每个.h文件。 你可以这样做

$(GCC) $(CFLAGS) -I$(HDR_INC_PATH) -c <source files>
HDR_FILES = $(wildcard <dir>/*.h)
$(GCC)$(CFLAGS)-I$(HDR\u INC\u PATH)-c
其中HDR_INC_PATH包含存储头的路径

如果标题位于多个位置,则可以执行以下操作

HDR_INC_PATH := -I<path1> \
                 -I<path2> \
                 -I<path3> \
                  and so on
HDR\u INC\u路径:=-I\
-我\
-我\
等等
其中,path1、path2和path3是标头所在的位置并使用

$(GCC) $(CFLAGS) $(HDR_INC_PATH) -c <source files>
$(GCC)$(CFLAGS)$(HDR\u INC\u PATH)-c
还可以使用$(通配符模式)搜索目录中的所有头文件。在这种情况下,您必须提到顶部目录路径,以便子目录中的标题也被采用。 差不多

$(GCC) $(CFLAGS) -I$(HDR_INC_PATH) -c <source files>
HDR_FILES = $(wildcard <dir>/*.h)
HDR\u文件=$(通配符/*.h)

其中dir是父目录的路径。然后可以在编译器配方中使用$(HDR\u文件)和-I。

这是个坏主意。做其他人做的事情,使用一些构建系统(在最简单的情况下是定义一个
Makefile
,例如
包含
变量)…并请正确拼写。你告诉了你做什么和不想做什么。介意问个问题吗?最好的一本手册还没有涵盖?也许你可以给出一个简单的例子,说明如何在make中解决这个问题。那我就想投你一票。