c - 设置我的 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
解决方案
默认目标是第一个目标,因此请切换这些目标的顺序,使其all
成为默认目标。
有关目标的文档中有更多详细信息:
默认情况下,目标是 makefile 中的第一个目标(不包括以句点开头的目标)。因此,通常编写 makefile 以使第一个目标是编译它们描述的整个程序或程序。如果 makefile 中的第一个规则有多个目标,则只有规则中的第一个目标成为默认目标,而不是整个列表。您可以使用.DEFAULT_GOAL
变量
在 makefile 中管理默认目标的选择
推荐阅读
- angularjs - 数组长度为零后自动关闭 uibModal
- owasp - 在 API 扫描替换器中设置重复的标头
- c++ - 理解一个 c++ 表达式:1[p], pa 指针
- arm - ARM PC 在缓冲区溢出中被错误值覆盖
- c++ - 为什么 HDF5 会出现 InpInput/output 错误以及如何解决它
- c# - 如何在 web api json 数组中添加成功键 C# web api 2
- linkedin - 使用 LinkedIn API 获取评论的评论
- jmeter - 测量 GUI Web 应用程序的负载或性能测试
- uiveri5 - 如何调试 uiveri5 测试?
- regex - 使用后视功能的正则表达式问题