cpp文件---预处理---编译---汇编---链接
一、预处理:
- 将cpp源文件生成为翻译单元
- 防止头文件被循环展开
- 解决方案:
- #ifdef解决方案
- #pragma once解决方案
gcc -E ./main.cpp -o ./main.i
二、编译:将翻译单元.i文件生成为汇编代码(g++和gcc的区别:gcc一般用于处理C文件)
g++ -S ./main.i -o ./main-s
三、汇编:把汇编代码生成机器码或目标文件
四、链接:把多个目标文件集成在一起,关联声明与定义。链接种类有:内部链接、外部链接、无链接
直接进行编译和链接:
g++ ./main.cpp -o ./main
五、整体步骤
mkdir demo_0 # 在当前目录下创建文件夹demo_0
gidit main.cpp # 生成main.cpp文件并打开编辑
gcc -E ./main.cpp -o ./main-i # gcc将源文件main.cpp生成翻译单元.i文件
gcc -S ./main.i -o ./main.s # gcc将翻译单元.i文件生成汇编代码.s文件
# g++将源文件生成可执行文件
g++ ./main.cpp -o main
# 执行
./main
六、Others
C++中有两种文件:源文件.cpp和头文件.h。
C++支持“分别编译”,一个程序中的代码可以放在不同的cpp文件中,然后对他们单独编译,编译成.o目标文件后做一次链接操作。