一个知识要学好几遍,这次返回来学习构建系统,顺便把编译工具链的知识整理一下。

编译工具链(Toolchain)是一组用于将源代码转换为可执行程序或其他目标文件的软件工具的集合。这些工具通常包括编译器、汇编器、链接器和库文件,它们协同工作以将源代码翻译成可执行文件或库。

1 编译流程

Alt text

  • 预处理(Preprocessing)
  • 编译(Compilation)
  • 汇编(Assemble),可以是 as 进行汇编。
  • 链接(Linking),可以是 ld 执行链接,注意:分为静态库链接和动态库链接。

2 常见编译工具链

以下介绍常见C/C++编译工具链。

2.1 GNU Compiler Collection (GCC)

GCC 是一个开源的编译工具链,支持多种编程语言,包括C、C++、Fortran、Ada、Go等。它在许多Linux发行版中被广泛使用,并且可用于各种平台。

2.2 Minimalist GNU for Windows(MinGW)

MinGW(Minimalist GNU for Windows)是一个开源的工具集,用于在Windows操作系统上开发和编译C和C++程序。MinGW提供了一组GNU工具,包括编译器、链接器和一些基本的开发工具,使开发者能够在Windows上进行开发,而不必依赖于特定于平台的工具链。

2.2 Microsoft Visual C++(MSVC)

MSVC(Microsoft Visual C++)是微软的C/C++编译器和工具链,用于开发Windows应用程序,主要用于C和C++开发。它通常与Microsoft Visual Studio集成,但也可以独立使用。