首页 > 解决方案 > 设置我的 makefile 以仅使用“make”编译 C

问题描述

我正在上 Zed Shaw 的 Learn C The Hard Way 课程,在第 2 课中,我发现在视频和书中,作者仅用于make ex1编译他的 C,而我需要运行gcc -Wall -g ex1.c -o ex1. 这是我的 Makefile,似乎第一部分应该使 make 命令可以编译,但是“make”命令不能编译它。

CFLAGs=-Wall -g

clean:
    rm -f ex1.exe

all:
    gcc -Wall -g ex1.c -o ex1.exe




标签: cmakefilecmder

解决方案


默认目标是第一个目标,因此请切换这些目标的顺序,使其all成为默认目标。

有关目标的文档中有更多详细信息:

默认情况下,目标是 makefile 中的第一个目标(不包括以句点开头的目标)。因此,通常编写 makefile 以使第一个目标是编译它们描述的整个程序或程序。如果 makefile 中的第一个规则有多个目标,则只有规则中的第一个目标成为默认目标,而不是整个列表。您可以使用.DEFAULT_GOAL变量 在 makefile 中管理默认目标的选择

推荐阅读