【问题标题】:Using make to compile code in c in terminal on Mac在 Mac 上的终端中使用 make 在 c 中编译代码
【发布时间】:2018-07-12 12:39:27
【问题描述】:

我正在尝试学习用 C 编程,并且我已经习惯了在编写代码后对其进行编译。我实际上是使用 K&R 2nd edition 开始的,他们使用 'cc' 进行编译。我最初开始使用 Zed Shaw 的 Learn C The Hard Way,但我已经停止了,因为我没有听到很多关于它的好消息。 Zed Shaw 的方式是使用“make”来编译代码,至少在开始时是这样。

使用 'make' 和使用 'cc' 之间有什么我现在应该关注的技术差异吗?

【问题讨论】:

  • make 要求你为你的项目写一个Makefile,这基本上是一种指示编译器和链接器做什么的格式。 cc 只是一个 C 编译器。
  • @PatrickRoberts 你可能知道make 有许多可以在没有Makefile 的情况下使用的默认设置。
  • @Code-Apprentice 我实际上并没有意识到这一点。我从未尝试在没有 Makefile 的项目上运行 make
  • @PatrickRoberts Zed Shaw 在我退出之前在书中讨论了一点 Makefile,但我不明白它是什么,而且我没有用于我正在使用的简单程序的 Makefile K&R 的书。 Make 似乎仍然有效。我只是不想在一开始就养成一个坏习惯,如果我不应该这样做的话。
  • 一旦你超越了单一源文件的练习,使用make 就变成了,如果不是必需的,那么非常可取,尤其是因为你可以安排make 只重新编译那些需要的东西要重新编译,还要保证所有需要重新编译的东西都重新编译。对于足够小的程序,使用现代机器和编译器简单地重新编译所有内容可能是可行的,但使用make 可以在更大的项目上节省大量时间(以及痛苦和悲伤)。

标签: c makefile compilation cc


【解决方案1】:

make 只是向编译器发出命令,例如cc。它自动构建具有多个文件的项目。首先,您无需关心这些细节。直接使用cc 构建单个文件就可以了。实际上,您将了解编译器的工作原理,以便在您最终学习 make 时充分利用它。

【讨论】:

  • 所以我猜当我有多个文件时,它可能是一个更深思熟虑的命令?我现在故意使用 cc 会更好吗?
【解决方案2】:

我同意代码学徒。我只想补充一点,在继续制作之前,对不同的 cc 命令行选项有一个很好的理解是很重要的。当您遇到更复杂的编译项目并且最终二进制文件的构建过程变得很痛苦时,您就可以过渡到学习 Make!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    相关资源
    最近更新 更多