使用 `make` 编译 C 程序(针对非 C 程序员)

💡 原文英文,约1800词,阅读约需7分钟。
📝

内容提要

本文讨论了在Mac上编译C/C++程序的过程,包括安装依赖、使用Makefile和./configure脚本。作者强调处理依赖和编译错误的重要性,并通过设置环境变量成功编译程序,提到可以手动复制二进制文件进行安装。理解C程序的基本知识对编译有帮助,即使不打算编写复杂的C程序。

🎯

关键要点

  • 在Mac上编译C/C++程序需要安装依赖和使用Makefile或./configure脚本。

  • C语言没有依赖管理工具,程序的依赖需要手动查找。

  • README文件通常会提供获取依赖的说明。

  • 某些C程序附带Makefile,其他程序则使用./configure脚本生成Makefile。

  • 编译过程分为两个步骤:将代码编译为目标文件和将目标文件链接为最终二进制文件。

  • 编译和链接时需要传递正确的标志以找到依赖。

  • 可以通过环境变量将额外参数传递给编译器和链接器。

  • 使用make命令时,可以通过指定输出文件名来编译特定文件。

  • 编译成功后,可以使用make install安装程序,或手动复制二进制文件。

  • 理解C程序的基本知识有助于编译,即使不打算编写复杂的C程序。

延伸问答

在Mac上编译C程序需要哪些步骤?

在Mac上编译C程序需要安装依赖、使用Makefile或./configure脚本,然后运行make命令进行编译。

C语言为什么没有依赖管理工具?

C语言没有依赖管理工具,因此程序的依赖需要手动查找,通常在README文件中会提供获取依赖的说明。

如何处理编译时的依赖错误?

处理依赖错误时,可以通过传递正确的编译和链接标志来告诉编译器和链接器如何找到依赖,必要时还可以使用环境变量传递额外参数。

Makefile和./configure脚本有什么区别?

Makefile是一个构建文件,直接用于编译,而./configure脚本用于生成Makefile,通常在缺少Makefile时使用。

如何在编译C程序时指定输出文件名?

可以通过在make命令中指定输出文件名来编译特定的文件,例如使用命令'make 文件名'。

编译成功后如何安装C程序?

编译成功后,可以使用'make install'命令安装程序,或者手动复制二进制文件到目标目录。

➡️

继续阅读