Makefile 只是一些文本文件(其中 tab 字符是 significant 至少在它们启动命令行时)。使用一些source code editor 来创建或改进它;我更喜欢GNU emacs,所以推荐它,但您可以使用其他编辑器(例如vim、gedit 等...),这是一个品味问题。顺便说一句,别忘了使用一些版本控制系统(我推荐git)。
在创建Makefile 之前,请花一些时间阅读documentation of make。请注意许多内置规则(您可以通过运行make -p 获得)并利用它们。
如何执行2个.c文件和.h文件。
您不会执行 .c 文件,而是将它们提供给您的 C compiler。我推荐使用GCC(或者Clang/LLVM)作为你的C编译器。
您可能应该将CC make 变量(它提供默认的C 编译器)设置为gcc,并将CFLAGS 变量(它提供默认的编译器标志)。
请阅读有关Invoking GCC 的文档。您肯定希望在编译时包含所有警告和调试信息。
因此,我建议在您的Makefile 中包含以下两行
CC= gcc
CFLAGS= -Wall -Wextra -g
当然,您需要在Makefile 中添加其他行。我让您阅读更多内容并进行实验。 This 和 that 应该是鼓舞人心的。
您可能想在Makefile 中提及对头文件的依赖。
所以我让你写你的Makefile。将其视为source code,因此请谨慎备份和版本控制。
顺便说一句,对于像你这样的小程序,我认为拥有src/ 和include/ 目录没有用,而且我认为引入build/ 目录只会增加不必要的复杂性。 YMMV。
那里编写的代码已经在 IDE 上进行了测试,所以我知道它可以工作。
这可能是一种错觉。有时您可能会遇到一些 undefined behavior 的不幸,它只是“看起来”可以工作,但实际上是一个错误。请参阅this answer 并点击我在此处提供的链接。
用make构建的free software项目很多;看看github 和其他地方找到一些。有时Makefiles 是自己生成的(例如使用cmake、qmake 或autoconf),但在您的简单情况下这是不值得的。
PS。不要指望 StackOverflow 会做你的功课。