我在哪里可以获得gnu.org Simple Makefile的源文件和头文件?

时间:2015-06-22 16:38:49

标签: c makefile gnu

我在哪里可以获取gnu.org "Simple Makefile" example的源文件和头文件?

我真的想尝试这个非常好的例子,除了我无法找到参考源和&头文件。

任何指针?

2 个答案:

答案 0 :(得分:1)

要创建样本Makefile可用的最小文件,您可以运行:

touch {kbd,command,display,insert,search,files,utils}.c \
      {defs,command,buffer}.h;\
      echo 'int main(){}' > main.c

说明:

将编译到目标文件中的最小C文件是空文件。要使链接成功,您需要一个且只需要一个主要功能。 上面的代码只是创建示例Makefile中提到的空.c.h文件以及带有main函数的main.c文件。

如前所述,内容并不重要,因此您可以将其作为最低限度。

C构建系统以及.c.h个文件的交互

在实际案例中,.h文件的作用就是他们从#include文件中获取.c d。 #inclusion是一个文字副本和粘贴 - 您也可以将每个#include指令替换为所包含内容的确切内容,因为这正是编译器将要执行的操作。

依赖.h文件的文件(根据Makefile中的指令)通常应相应地#include相同的头文件。

头文件依赖性重复数据删除

真实世界Makefiles通常不会复制此信息,而是将.c文件(基于其中包含的#include指令)创建出来的头文件依赖文件(标头依赖文件通常具有.d后缀):

#A makefile rule with some dynamic variables (more advanced make)
%.d: %.c
    $(C) $(CFLAGS) -MM -MF $@ -MT $*.o $<

#include will remake the dependency files if they need to be
-include $(CLIENT_SRC_C_D)

tup,这是一个很棒的Make替代方案,可根据文件系统读取自动执行此操作。

答案 1 :(得分:0)

这些文件的完全内容真的很重要吗?我相信linked manual的目的是描述{{1}}的工作方式,以显示编写和使用makefile的语法和语义,而不是用于构建任何特定的 real 应用。使用的名称只是一个概念。如果需要,您可以简单地创建具有该特定名称的文件,并放置一些虚拟函数。

供您参考,您也可以查看this alternative link,其中包含已使用文件的源代码。这是一个非常简单的例子,但应该足以让你有这个想法。