如何在“Unix as IDE”理念下处理C makefile?

如何在“Unix as IDE”理念下处理C makefile?

我长期以来一直使用 VIM 作为我的主要编辑器,从那以后就再也没有接触过 IDE。这对于市场上的大多数编程语言都非常有效。不过,当涉及到 C 语言时,我仍然局限于简单的项目,因为编写 makefile 太麻烦了。 “Unix as IDE”哲学如何处理 makefile?是否有一个我不知道的工具可以从命令行执行特定的工作,或者每个人都只是自己编写 makefile ?

答案1

有很多工具可以生成 makefile。最常见的两个是CMake汽车制造商;这两个命令都要求您描述项目的组件和所需的输出,并为您生成 makefile。

毫无疑问,这是一个见仁见智的问题,但您可能会发现 CMake 更容易掌握;如果你需要交叉编译,你最终将需要 Automake (并且自动会议)。

对于简单的项目,提供的内置规则GNU 使可以提供很大帮助;例如,要构建一个由两个源文件和组成的项目,a.c以下b.cMakefile 有效:

all: a

a: a.o b.o

运行make会发现这一点,a.c并且b.c需要进行编译,并链接以生成a...

(作为程序员指出,内置规则仅此而已,并且您的 makefile 需要指定全部文件之间的关系,包括项目的标题;您很快就会找到其他工具来帮助管理依赖关系等。)

答案2

您对 Makefile 的了解有误。除非您正在构建复杂的东西,否则简单的项目将需要一个简单的 Makefile,可以在 VIM 中轻松维护。不需要 IDE。确实,IDE 喜欢创建极其复杂的 Makefile,但这就是您讨厌 IDE 的原因,不是吗?

当您要求 Makefile 执行更复杂的操作(例如适应多个操作系统或复杂的代码生成方案)时,它们就会变得复杂。如果您有一堆源文件并且需要编译它们并将它们链接到应用程序中,那么您无需担心。

相关内容