linux编译c加标准库,Linux C 编译流程(GCC)

1 开发环境、工具

通常所说的GCC是GUN Compiler Collection的简称,是Linux系统上常用的编译工具;GCC工具链软件包括GCC、Binutils、C运行库等

1.1 GCC

GCC(GNU C Compiler)是编译工具;将 C/C++语言 编写的程序转换成为处理器能够执行的二进制代码的过程 即由编译器完成

1.2 Binutils

一组二进制程序处理工具,包括:addr2line、ar、objcopy、objdump、as、ld、ldd、readelf、size等。这一组工具是开发和调试不可缺少的工具

工具 说明

addr2line   用来将程序地址转换成其所对应的程序源文件及所对应的代码行,也可以得到所对应的函数。该工具将帮助调试器在调试的过程中定位对应的源代码位置

as 主要用于汇编

ld 主要用于链接

ar 主要用于创建静态库

ldd   可以用于查看一个可执行程序依赖的共享库

objcopy  将一种对象文件翻译成另一种格式,譬如将.bin转换成.elf、或者将.elf转换成.bin等

objdump  主要的作用是反汇编

readelf  显示有关ELF文件的信息

size  列出可执行文件每个部分的尺寸和总尺寸,代码段、数据段、总大小等,请参见后文了解使用size的具体使用实例

1.3 C运行库

C语言标准主要由两部分组成:一部分描述C的语法,另一部分描述C标准库。C标准库定义了一组标准头文件,每个头文件中包含一些相关的函数、变量、类型声明和宏定义,譬如常见的printf函数便是一个C标准库函数,其原型定义在stdio头文件中。

C语言标准仅仅定义了C标准库函数原型,并没有提供实现。因此,C语言编译器通常需要一个C运行时库(C Run Time Libray,CRT)的支持。C运行时库又常简称为C运行库。与C语言类似,C++也定义了自己的标准,同时提供相关支持库,称为C++运行时库

2、创建 C文件

编辑的过程就是创建和修改 C 程序的源代码;其实在 Linux 上,最常用的文本编辑器是 Vim 编辑器,也可以采用 gedit 编辑器

3、编译

3.1 编译步骤

C 程序的创建过程有五个基本步骤

步骤 命令 说明

编辑 vim {file_name}   编辑期间产生的文件,常称为源文件

预处理   gcc -E {file_name}.o -o {file_name}.i  生成 编译文件

编译 gcc -S {file_name}.o -o {file_name}.s  生成汇编文件

汇编 gcc -c {file_name}.o -o {file_name}.o  在 Linux 中这些文件的扩展名通常是 .o,在 Windows 下面这些文件的扩展名通常是 .obj 。如果编译成功就会生成一个文件,它与源文件同名。但扩展名为 .o 或者 .obj

链接 gcc -g -v -Wall {file_name}.o -o {file_name} 链接器将源代码文件中由编译器产生的各种对象模块组合起来,再从 C 语言提供的程序库中添加必要的代码模块,将它们组合成一个可执行文件;链接一旦成功,就会生成可执行文件,在 Windows 下面可执行文件的扩展名是 .exe,在 Linux 下面,可执行文件没有扩展名,但它的文件类型是可执行的

©著作权归作者所有:来自51CTO博客作者坚韧的石头的原创作品,如需转载,请注明出处,否则将追究法律责任

Linux 编译流程Linux C 语言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值