GCC常用命令和ELF文件格式的了解

一、Linux GCC常用命令

1.1 简介

GCC 的意思也只是GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持C语言;它现在还支持Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言等,以及支持函数式编程和逻辑编程Mercury 语言,等等。而GCC 也不再单只是GNU C 语言编译器的意思了,而是变成了GNU Compiler Collection 也即是GNU 编译器家族的意思了。另一方面,说到GCC 对于操作系统平台及硬件平台支持,概括起来就是一句话:无所不在。

1.2 C 运行库

C 语言标准主要由两部分组成: 一部分描述C 的语法, 另一部分描述C 标准库。C 标准库定义了一组标准头文件,每个头文件中包含一些相关的函数、变量、类型声明和宏定义, 譬如常见的printf 函数便是一个C 标准库函数, 其原型定义在stdio 头文件中。C 语言标准仅仅定义了C 标准库函数原型, 并没有提供实现。因此, C 语言编译器通常需要一个C 运行时库( C Run Time Libray, CRT) 的支持。C 运行时库又常简称为C 运行库。与C 语言类似, C++也定义了自己的标准, 同时提供相关支持库, 称为C++运行时库。

二、简单编译学习

2.1 准备工作

在Linux系统中新建一个文件夹,用C语言写一个简单的Hello-GCC-World的程序,以便后续编译使用

#include <stdio.h>

int main()
{
   
    printf("Hello GCC world!!!\n");
    return 0;
}

2.2 一步到位

执行命令gcc main.c -o main,一步到位编译成功,直接执行即可。实质上,上述编译过程是分为四个阶段进行的,即预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。

2.3 编译过程

01 预处理

执行命令gcc -E main.c -o main.i,生成文件main.i
可以输出main.i文件中存放着main.c经预处理之后的代码。打开main.i文件,看一看,就明白了。gcc 的-E 选项,可以让编译器在预处理后停止,并输出预处理结果。在本例中,预处理结果就是将stdio.h 文件中的内容插入到main.c中了。

$ gcc -E main.c -o main.i
$ ls
  main.c  main.i
$ 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值