多文件编译与链接

每个 .cpp 单独编译成 .o 目标文件 → 链接器合并并解析跨文件符号引用 → 可执行程序
源文件 .cpp 目标文件 .o(分别编译) 链接器 linker 可执行程序 main.cpp #include "util.h" int main(){ cout<< add(2,3); } 调用 add,只见声明 util.cpp #include "util.h" int add(int a,int b){ return a+b; } 给出 add 的定义 编译 g++ -c 编译 g++ -c main.o 符号表 symbols add 未定义 ✗ → 向外部寻找定义 util.o 符号表 symbols add 已定义 ✓ → 对外提供该符号 绑定到定义 符号解析 ✓ 链接器 ld / linker 合并目标文件 解析符号引用 绑定调用↔定义 链接 app 可执行文件 main + util 符号已就位 ✓