陕西省住房建设厅网站,北京公司建站模板,口碑营销的案例及分析,郑州网站建设的公司环境#xff1a;centos7.6#xff0c;腾讯云服务器Linux文章都放在了专栏#xff1a;【Linux】欢迎支持订阅#x1f339;前言我们在写完代码运行时会发现生成了一个.exe的可执行程序#xff0c;那么该程序是如何形成的呢#xff1f;本次章节将在linux下用编译器gcc进行一…环境centos7.6腾讯云服务器Linux文章都放在了专栏【Linux】欢迎支持订阅前言我们在写完代码运行时会发现生成了一个.exe的可执行程序那么该程序是如何形成的呢本次章节将在linux下用编译器gcc进行一步步的讲解。通过本次章节的学习将会掌握linux中的编译器gcc/g的用法以及源文件到可执行程序形成的相关知识。程序的翻译预处理gcc -E首先.c源文件经过的第一个阶段便是预处理阶段在该阶段主要会完成以下几件事头文件的展开条件的编译、宏的替换以及注释的去除我们可以使用gcc -E 源文件 -o 指定目标文件这里一般生成的是以.i结尾的文件的命令来生成我们想要的目标文件。gcc -E从现在开始进行程序的翻译直到预处理完成后停止-o:后面紧跟自己想要生成的指定目标文件即给默认生成的文件重命名便于观察编译gcc -S第二个阶段为程序的编译该阶段主要是将C语言转化为汇编语言我们可以使用gcc -S 指令来生成编译阶段产生的目标文件该阶段生成的目标文件后缀为.sgcc -S:从现在开始进行程序的翻译到编译阶段完成后停止汇编gcc -c第三阶段为汇编阶段在该阶段主要是将汇编语言转化为可重定位二进制目标文件.obj我们可以使用指令gcc -c 来进行生成汇编阶段产生的目标文件该目标文件的后缀为.ogcc -c:程序进行翻译进行到汇编完成后停止链接该阶段会通过链接器将生成的可重定位二进制目标文件和库文件形成某种合并形成可执行程序。至此.c源文件经过翻译后形成了可执行文件。gcc不加选项直接gcc 源文件 -o 目标文件 会直接形成最终的可执行程序一般使用gcc编译c语言g编译c语言用法相通扩展选项gcc/g-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面-S 编译到汇编语言不进行汇编和链接-c 编译到目标代码-o 文件输出到 文件-static 此选项对生成的文件采用静态链接-g 生成调试信息。GNU 调试器可利用该信息。-shared 此选项将尽量使用动态库所以生成文件比较小但是需要系统由动态库.-O0-O1-O2-O3 编译器的优化选项的4个级别-O0表示没有优化,-O1为缺省值-O3优化级别最高-w 不生成任何警告信息。-Wall 生成所有警告信息。end生活原本沉闷但跑起来就会有风