C++编译全过程


gcc flag.c -o flag(用gcc编译成可执行文件)

一、四个步骤:

  1. 预处理(Processing)

    gcc -E flag.cpp -o flag.ii -E Preprocess only; do not compile, assemble or link.

  2. 编译(Compilation)

    gcc -S flag.ii -o flag.s -S Compile only; do not assemble or link.

  3. 汇编(Assemble)

    gcc -c flag.s -o flag.o -c Compile and assemble, but do not link.

    nasm -f elf64 -o flag.o flag.asm # 使用 nasm 将 .asm 文件编译成 .o 文件

    (有的asm文件nasm汇编后需要这样操作,因为他是NASM语法编写的代码,gcc无法直接处理)

  4. 链接(linking)

    gcc -o flag flag.o -o <file> Place the output into <file>.

    ld -s -o flag flag.o //生成可执行文件flag,-s表示在可执行文件中去掉符号表和调试信息,使得可执行文件更小。

二、各个步骤详解:

1.