C++编译链接过程全解析,面试必考的编译题!
从源代码到可执行文件,C++经历了哪些步骤?本文系统讲解预处理、编译、汇编、链接四个阶段的细节,附带大量代码示例和面试Q&A!
1. 编译链接总览
1.1 四个阶段
源代码(.cpp) → [预处理] → [编译] → [汇编] → [链接] → 可执行文件
↓ ↓ ↓ ↓
.i文件 .s文件 .o文件 可执行文件
| 阶段 | 输入 | 输出 | 工具 |
|---|---|---|---|
| 预处理 | .cpp | .i | g++ -E |
| 编译 | .i | .s | g++ -S |
| 汇编 | .s | .o | g++ -c |
| 链接 | .o | 可执行文件 | g++ / ld |
1.2 示例代码
// main.cpp
#include <iostream>
#include "math_utils.h"
int main() {
int result = add(3, 4);
std::cout << "Result: " << result << std::endl;
return 0;
}
// math_utils.h
#ifndef MATH_UTILS_H
#define MATH_UTILS_H
int add(int a, int b);
int multiply(int a, int b


2019

被折叠的 条评论
为什么被折叠?



