【发布时间】:2018-07-25 00:33:40
【问题描述】:
我正在努力学习 C,并且刚刚开始阅读“Learn C the Hard Way”一书。在第二课中作者提到了 Makefiles 并指出当使用命令“make example.c”时,“make”会自动调用 cc 来构建 .c 文件。出于好奇,我开始研究cc,因为我只熟悉gcc。根据用户 Jonathan Leffler 在 SO 的帖子“Difference between CC, gcc and g++?”上的说法,cc 通常链接到 Linux 中的 gcc。
所以这是我的问题:
1) cc 在 Linux 中是如何链接到 gcc 的?这似乎是一个简单的问题,但我不知道它是否需要基本答案或高级操作系统答案。 (在 Red Hat Linux 上检查“env >> env_vars.txt”然后读取文本文件 env_vars.txt 的内容后,似乎 cc 不是一个用户在 SO 上声称的环境变量。)
2) 我们如何知道“make”遇到 .c 文件(或任何其他文件)时的内部细节?例如,对于 .c 文件,我们如何准确地知道或确认“make”将调用 cc 而不是直接使用 .c 文件调用 gcc(或不调用)? (“make”是否引用了默认的 Makefile?如果是,我们如何读取这个默认 Makefile 的内容?)
【问题讨论】: