答案 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
和.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,其中包含已使用文件的源代码。这是一个非常简单的例子,但应该足以让你有这个想法。