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

Mai*_*tor -1 programming c ide development

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

Ste*_*itt 7

有很多工具可以生成makefile。最常见的两个是CMakeAutomake;这两者都要求您描述项目的组件和所需的输出,并为您生成 makefile。

这无疑是一个意见问题,但您可能会发现 CMake 更容易掌握;如果你需要交叉编译,你最终会需要 Automake(和Autoconf)。

对于简单的项目,GNU Make提供的内置规则可以提供很多帮助;例如,要构建包含两个源文件a.c和 的项目b.c,以下 Makefile 有效:

all: a

a: a.o b.o
Run Code Online (Sandbox Code Playgroud)

运行make将找出a.cb.c需要编译,并链接以生成a...

(正如AProgrammer指出的,内置规则仅到此为止,您的 makefile 需要指定文件之间的所有关系,包括项目的标题;您很快就会使用其他工具来帮助管理依赖项等。)