Linux下 gcc 的使用(一看就会系列)
2022/1/3 7:10:09
本文主要是介绍Linux下 gcc 的使用(一看就会系列),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
写在前面:gcc是“GNU Compiler Collection”的缩写,从字面意思可以知道它是一个编译器集。gcc不止可以编译器c语言,还能用于c++,java,object-C等语言程序。但是在这里,我们的嵌入式学习中,目前只去关注gcc在C语言方面的编译功能。
目录
一.预处理
二. 编译
三.汇编
四.链接
1.gcc的安装(以Ubuntu为例) sudo apt-get install build-essential
安装完后可以通过 gcc --version 查看版本。
让我们在通过gcc编译可执行文件的过程中掌握其基础应用。
准备: 先在当前目录下 使用vim新建一个.c文件 例如 666.c
$ vim 666.c
(vim的使用可在我的另一篇博客有详细的叙述,这里不多在赘述)
插入一段代码。
#include <stdio.h> main() { int a,i; a=6; for(i=0;i<3;i++) { printf("%d",a); } }
(每次我们用 cat 查看)
一.预处理
1.预处理通过对宏定义(像#define)进行展开,对头文件(像 stdio.h)进行展开,对条件进行(像ifdef)编译,展开所有宏,删除所有注释(像"//").预处理cpp把源代码,头文件预编成一个.i文件。(注意这时并不检查语法,所以即使有语法错误也不会报错。)
2.命令:
$ gcc -E (源文件名) -o (预处理文件名)
或者:
$ gcc (源文件名) > (预处理文件名)
例如按666.c 来说,预处理时可以是 :
gcc -E 666.c -o 666.i
也可以是 gcc 666.c > 666.i
二. 编译
1.编译也就是检查语法是否错误,将预处理过的文件编译成汇编文件。
2.命令:
$ gcc -S (源文件) -o (汇编文件)
例如 gcc -S 666.i -o 666.s
三.汇编
1. 汇编也就是将汇编文件生成目标文件(二进制文件)通过汇编,文本代码变成了二进制代码。(二进制代码文件以.o为后缀名)。
2.命令:
$ gcc -c (汇编文件) -o (目标文件)
例如 gcc -c 666.s -o 666.o
(这时候因为是二进制文件了,所以会乱码)
四.链接
1. 链接找到依赖的库文件(静态与动态),将目标文件链接为可执行程序。
$ gcc -c [目标文件] -o [可执行程序] -l[动态库名]
假如没有动态库的话(一般)
直接
$ gcc -c [目标文件] -o [可执行程序]
例如 gcc -c 666.o -o 666
此时会生成可执行程序 666
如果想执行使用该命令:
$ ./可执行程序
其中./是在当前目录下的意思。
例如 ./666
(注意:在一般我们使用时 如果使用 gcc 可执行文件名,会默认生成a.out 可执行文件,这时我们直接执行它时用 ./a.out )
这篇关于Linux下 gcc 的使用(一看就会系列)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法