石家庄企业建站系统,wordpress+自定义主页,在线做交互网站,东莞网络优化公司文章目录 前言一、Linux系统安装gcc二、gcc编译具体流程1.预处理#xff08;Pre-Processing#xff09;2.编译#xff08;Compiling#xff09;3.汇编#xff08;Assembling#xff09;4.链接#xff08;Linking#xff09;5.不同后缀文件含义 三、gcc命令选项四、Linu… 文章目录 前言一、Linux系统安装gcc二、gcc编译具体流程1.预处理Pre-Processing2.编译Compiling3.汇编Assembling4.链接Linking5.不同后缀文件含义 三、gcc命令选项四、Linux下的C/C编程步骤总结 前言 GCCGNU Compiler Collection编译器套件是GNU推出的一款功能强大、性能优越的多平台编译器可以在多种平台上编译出可执行程序的编译器集合。本篇我们将重点介绍在Linux系统下的GCC编译工具。 一、Linux系统安装gcc
更新软件列表 sudo apt update安装gcc编译器sudo apt install build-essential验证是否安装 gcc --version出现gcc版本号即安装成功。
二、gcc编译具体流程
1.预处理Pre-Processing 预处理的主要作用是通过预处理的内建功能对一些可预处理资源进行等价替换。如文件包含、条件编译、布局控制和宏处理等。 预处理命令gcc -E -o [目标文件] [编译文件]例gcc -E -o test.i test.c生成后缀.i 文件。 2.编译Compiling 预处理结束后gcc先检查代码的规范性是否有语法错误等确定代码实际要做的工作。检查无误后将代码翻译成汇编语言。 编译命令gcc -S -o [目标文件] [编译文件]例gcc -S -o test.s test.i生成后缀.s 文件。 3.汇编Assembling 汇编阶段是将编译阶段生成的.s 文件转换为 .o的二进制目标代码。 汇编命令gcc -c [目标文件] [编译文件]例gcc -c test.o test.s生成后缀.o 文件。 4.链接Linking 最后我们在链接阶段将.o 文件进行链接生成可执行文件。 链接命令gcc -o [目标文件] [编译文件]例gcc -o test test.o生成可执行文件。 5.不同后缀文件含义
文件后缀对应语言.cC源程序.C/.cc/.cppC源程序.i经过预处理的C源程序.ii经过预处理的C源程序.s/.S汇编原始程序.o二进制目标文件.a/.so编译后的静态/动态库文件
三、gcc命令选项 常用选项 1-c只进行预处理、编译和汇编阶段不进行链接生成二进制目标文件.o 文件 2-S只进行预处理、编译阶段不进行汇编生成汇编代码.s 文件。 3-E只对源程序进行预处理生成.i 文件。 4-o file将file文件指定为输出的可执行文件。 5-g在可执行程序中包含标准调试信息可使用gdb工具调试。 6-I dir在头文件的搜索路径列表中添加dir目录。 库相关选项 1 -static进行静态编译即链接静态库禁止链接动态库。 2-shared进行动态编译可生成动态库文件。 3-L dir在库文件的搜索路径列表中添加dir目录。 4-fPICPosition Independent Code生成位置独立的目标代码。通常再使用-shared生成动态库。 5-lname链接名称为libname.a静态库或libname.so动态库的库文件。若两个库都存在则根据编译方式-static还是-shared进行链接。 警告和出错选项 1-w关闭所有警告信息。 2-ansi支持符合ANSI标准的C程序。 3-Wall允许发出gcc提供的所有有用的警告信息。 4-werror把所有警告信息转化为错误信息并在警告发生时终止编译过程。
四、Linux下的C/C编程步骤 以上就是GCC编译的详细过程为了简化编译过程我们在Linux下的实际编程步骤如下。 1.利用vi、vim或gedit等编辑器对test.c文件进行编辑。 2.利用gcc编译器对.c文件进行编译两种方式 1gcc test.c产生默认的test.out可执行文件 2gcc test.c -o test产生名为test的可执行文件 3.执行编译后生成的可执行文件./ [可执行文件]例:./ test.out或./ test。 总结 以上就是GCC编译工具简介和编译具体流程的详细内容希望大家阅读后都能有所收获原创不易转载请标明出处若文章出现有误之处欢迎读者留言指正批评