各个 .cpp 文件是独立编译的,如果有其它的类和函数会先在本 .o 文件中生成符号,由最后的链接器去其它 .o 文件找具体的函数定义

编译过程

  1. .c .cpp 文件经过 预编译器拷贝头文件、宏展开 生成 .i 文件(文本文件)
    g++ -E main.cpp -o main.i
  2. .i 文件经过 编译器 生成汇编程序 .s(文本文件)
    g++ -S main.i -o main.s
  3. .s 文件经过 汇编器 生成可定位目标文件 .o (二进制)
    Windows:
    g++ -c main.s -o main.obj
    Linux:
    g++ -c main.s -o main.o
  4. .o 文件经过 链接器 生成可执行目标文件 .exe .dll
    g++ main.s -o main