- g++和gcc的区别:
g++可以理解为gcc的超集,两者都可以编译c程序,但是遇到c++程序时,gcc则会出现错误。 - 为什么g++既可以编译C又可以编译C++呢?
因为g++在内部做了处理,默认编译C++程序,但如果遇到C程序,它会直接调用gcc去编译. - 编译的过程:
图片出处
编译各个阶段的命令:
//预处理 : 删除注释,展开宏定义等
g++ -E main.cpp -o mian.i
//编译 语法检查等
g++ -S mian.i -o mian.s
// 汇编 生成机器码
g++ -c main.s -o main.o
//链接 链接外部库文件,生成可执行文件
g++ main.o -o mian.exe
//生成带调试信息的可执行文件
g++ -g main.cpp -o main
//查看 可执行文件的内存分区
要熟记几个命令: ll : 查看文件详细信息
file : 查看文件的类型
size:查看可执行文件的内存分区信息。
//一次编译多个文件
一步就实现 g++ foo1.cpp foo2.cpp -o foo