编译系统基础
工具链
-
一个典型的工具链是:链接器-编译器(汇编器一般不接触)-预处理器-文本编辑器-构建系统
- 调试工具及profile工具通常作为独立的部分出现.
-
构建系统,或者称为工程管理器,对于开发意义重大,是工具链中重要的一环,其意义在于组织文件,管理源代码,明确目标输出,组织编译/链接的顺序和关系.
- 常见的构建系统有,VS的
nmake
,QT的qmake
,跨平台的CMAKE(使用makelist.txt
),unix平台的make(使用makefile
).其中CMAKE是目前事实上的标准构建系统,bazel也随着google项目的扩张越来越流行 - VS和QT这样的IDE对自己的构建系统更加友好,往往可以按GUI的形式设置构建参数,CMAKE等则都需要开发者手动写构建文件.
- 常见的构建系统有,VS的
-
使用
#ifndef
或者#pragma once