3、gcc编译器

1758161462364.png

GCC是Linux 下常用的C/C++编译器,支持多平台开发。编译过程包括预处理、编译、链接和汇编。常用命令如gcc test.c -o test生成可执行文件,多文件编译需先生成.o文件再链接,选项如-c、-s、-E等控制编译阶段。虚拟机共享文件夹方便Windows与Liunx间文件共享。

什么是gcc
GCC编译器是Linux系统下最常用的C/C++编译器,GCC编译器通常以gcc命令的形式再终端(Shell)中使用,它有很多选项,这是我们要学习的。
gcc能够再当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此适合在嵌入式领域开发编译。

gcc的编译过程(作用)

预处理

gcc首先对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析处理。

编译

用GCC编译C/C++代码适,它会试着用最少的时间完成编译并且编译后的代码易于调试。易于调试意味着编译后的代码与源代码有同样的执行顺序,编译后的代码没有经过优化。

连接(链接)

当所有的目标文件都生成之后,gcc就调用ld(链接器)来完成最后的关键工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用的库函数也从各自所在的档案库中连到合适的地方。

汇编

汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.s为后缀的汇编语言源代码文件,经过预编译和汇编之后都生成以.o为后缀的目标文件。

gcc的使用

安装命令(有些系统会默认安装):sudo apt install gcc
单个文件生成可执行文件命令:gcc text.c -o text.out

• o选项可以指定生成文件的名称和类型,如果不指定,则直接生成a.out

多文件生成可执行文件

• gcc -c add.c -o add.o
• gcc -c suntraction.c -o subtraction.o
• gcc -c main.c -o main.o
• gcc main.o add.o subtrction.o -o test.out

常用命令

常用指令

      选项                                              含义
       -c                           把预处理、编译、汇编都做了,但是不链接(.o)
       -S                                      只编译不汇编,生成汇编代码
       -E                                      只进行预编译,不做其他处理
       -g                                      在可执行程序中包含标准调试信息
       -o                                      将file文件指定为输出文件
       -v                         将打印编译器内部编译各过程的命令行信息和编译器的版本
       -l                                        指定头文件目录
       -L                                       指定链接时库文件目录

使用虚拟机的共享文件夹

我们在Windows下写代码,然后到Linux下编译,是一种常见的编程方式

流程

• 在Windows上创建文件夹
• 设置虚拟机共享
• linux上创建文件夹 sudo mkdir -p/mnt/hgfs/share
• 关联两个系统下的文件夹(挂载) sudo mount -t vboxsf share /mnt/hgfs/share
• 查看关联是否成功 ls

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容