gpt4 book ai didi

c - `make` 没有手动编写Makefile

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:44 24 4
gpt4 key购买 nike

今年我将有两个人用纯 C 编写一个或两个项目。为了自动编译(此外,我想使用 Atom 的构建插件)我想要一个 Makefile。

但我不太喜欢手动指定所有命令。我宁愿指定源文件和 header (以正确的顺序)并让程序为我构建其余部分。

有什么工具可以使用吗?还是我应该重新考虑手动编写 Makefile?

最佳答案

make 有许多隐式规则,无需您编写任何命令即可从 C 源文件创建目标文件。您真正需要做的就是列出程序所需的目标文件。

例如,假设您需要源文件a.cb.c,并且您想要创建程序p,那么你只需要

p : a.o b.o
$(CC) $^ -o $@

$(CC)是C编译器前端程序使用的变量,也是用来链接的。 make 为您创建它,它通常是 cc

$^ 是规则的所有先决条件的列表,在本例中为 a.o b.o

$@ 是规则目标的名称,在本例中为 p

使用这个非常简单的 makefile,make 会将 C 源代码编译为目标文件,然后使用提供的规则将目标文件链接到可执行程序中。


您可以从上面的 makefile 开始自定义,例如通过设置 告诉 make 显式使用 gcc 而不是 cc CC 变量。或者通过创建和设置 CFLAGS 变量来设置特殊的编译器标志。将目标添加到“干净”(通常删除程序和目标文件)。还有更多。

我建议您了解make 和makefile,为此您应该阅读the GNU make online manual。 , 在继续其他构建系统之前。

GNU build system仍然很常见,但最近一直在下滑,主要是CMake (我个人喜欢)但是还有许多其他构建系统。有些(如 CMake)可用于生成 makefile,而其他的则直接替代 make

关于c - `make` 没有手动编写Makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35938332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com