Linux环境下编译链接调试C/C++源程序

2018-01-16 12:39:36来源:网络收集作者:管理员人点击

分享

阿里云爆款一:单文形式

    这里介绍最常用的GCC编译连接器。其中gcc基本的使用格式:


gcc[选项] [选项][目标文件]


   
上面的使用格式中目标文件可以缺省,gcc会默认生成可执行的文件,生成名:编译文件.out。gcc会按照命令选项要求对输入文件进行预处理,编译,汇编,链接等操作,生成输出文件。


Linux环境下编译链接调试C/C++源程序


    参考一些gcc命令手册有:


Linux环境下编译链接调试C/C++源程序


    以千年规律:hello.c为例


#include
void main(){
printf("Hello GCC./n");
}头文件包含#include<>和其他的宏定义(#define #ifdef等),在程序的预处理阶段,编译器将包含的头文件stdio.h编译进来,我们可以使用“-E”来查看,作用为让gcc在预处理阶段结束后停止编译过程。

Linux环境下编译链接调试C/C++源程序


     -o 指令指定生成的预处理文件为heelo.i,其实-o hello.i 可以省略,这时候生成的预处理文件会被定向到标准输出设备上,我们可以查看下hello.i文件的内容:


Linux环境下编译链接调试C/C++源程序


    -S 选项是指定gcc 在生成汇编文件后就停止。


Linux环境下编译链接调试C/C++源程序


同样的 -o 指定生成汇编文件myhello.s,-o myhello.s 可以省略,然后gcc就默认生成一个源文件同名的sourcefilename.s,我们也可以看看myhello.s:


Linux环境下编译链接调试C/C++源程序


    -c 选项指定gcc生成目标文件后停止:


Linux环境下编译链接调试C/C++源程序


最后,如果gcc不使用-E -S -c等选项时候,仅仅使用-o,那么将直接生成可执行文件。


Linux环境下编译链接调试C/C++源程序


    执行生成的可执行文件:


Linux环境下编译链接调试C/C++源程序


二:多文件的处理
     这里写两个.c源文件:

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台