C文件编译步骤
四步:
预处理:gcc -E project.c -o project.i //头文件展开,宏替换 ,去掉注释
编译:gcc -S project.i -o project.s //将目标文件编译成汇编文件
汇编:gcc -c project.s -o project.o //汇编成二进制文件
链接:gcc project.o -o project //加载库文件,生成可执行文件
编译c代码用gcc。
g++是专门来编译C++语言。
一步实现 g++ hello.cpp -o hello
gcc hello.cpp -o hello
编译 是最花费时间的
gcc常用参数:
gcc -v/–version 查看gcc版本
-I:编译时指定头文件路径,当头文件和当前编译的文件不在同一路径下时使用
gcc sum.c -I (./include/xxx文件路径) -o sum
-o:指定要生成的文件的名字。
-g:gbd调试的时候需要加
-D:编译时指定一个宏,调试代码的时候使用
-Wall:产生警告信息
-On:优化代码,优化级别:1,2,3(从低到高)
一:预编译(预处理)
预编译(预处理)是预处理中会展开以#起始的行,包括#if、#ifdef、#if ndef、 #else 、 #elif 、 # endif、#define、#include、#line、 #error、#pragma以及单独的#。其实就是把除了函数(包括main)以外的东西都展开成指定的形式,比如加上行号等,并将头文件里包含的东西所对应的文件(包括子文件夹)也都写入进去以便调用。同时也会把写在文件里的注释都删掉。
1)将所有的#define删除,并展开所有的宏定义;
2)处理所有的预编译指令,例如:#if,#elif,#else,#endif;
3)处理#include预编译指令,将被包含的文件插入到预编译指令的位置;
4)添加行号信息文件名信息,便于调试;
5)删除所有的注释:// /*