“gcc编译”
C++编译全过程
gcc flag.c -o flag(用gcc编译成可执行文件)
一、四个步骤:
预处理(Processing)
gcc -E flag.cpp -o flag.ii
-E Preprocess only; do not compile, assemble or link.
编译(Compilation)
gcc -S flag.ii -o flag.s
-S Compile only; do not assemble or link.
汇编(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无法直接处理)
链接(linking)
gcc -o flag flag.o
-o <file> Place the output into <file>.
ld -s -o flag flag.o //生成可执行文件flag,-s表示在可执行文件中去掉符号表和调试信息,使得可执行文件更小。
二、各个步骤详解:
1.
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 BarkStarry!