Linux--gcc的基本用法
Linux--gcc的基本用法
- 1.四个过程
- 2.一次性完成
- 二、gcc常用选项
- 三、多模块编译
- 四、静态库与动态库
- 1.静态库(.a)
- gcc编译步骤:
- (1)预处理
- (2)编译
- (3)汇编
- (4)链接
1.四个过程
预处理(pre-processing) E
编译器将C源代码中的包含的头文件如stdio.h编译进来,替换宏。
编译(Compiling)S
gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。
汇编(Assembling) c
把编译阶段生成的”.s”文件转成二进制目标代码。
链接 (Linking)
链接到库中,生成可执行文件。
2.一次性完成
二、gcc常用选项
选项名 | 作用 |
---|---|
E | 激活预处理;头文件、宏等展开(.i文件) |
S | 激活预处理、编译;生成汇编代码(.s文件) |
c | 激活预处理、编译、汇编;生成目标文件(.o文件) |
o | 生成目标 |
Wall | 打开编译告警(所有) |
g | 嵌入调试信息,方便gdb调试 |
llib | 链接 lib 库 (这里是小写 L ) 相当于 C++ #pragma comment(lib, “xxx.lib”) |
Idir | 增加 include 目录 (这里是大写 i ) 头文件路径 |
LDir | 增加 lib 目录 (编译静态库和动态库) |
三、多模块编译
多模块编译中如果某一个模块发生了变化,只需要编译更改的模块即可
四、静态库与动态库
1.静态库(.a)
程序在编译链接时候把库的代码链接到可执行文件中。程序运行时候,不再需要静态库,生成的可执行文件大,每个可执行文件都会加载一份拷贝到内存。
gcc编译步骤:
(1)预处理
gcc –E xxxxx.c -o xxxxx.i
展开头文件
删除注释
(2)编译
gcc -> cc1
gcc –S xxxx.c –o xxxx.s
将C源代码编译为汇编语言
(3)汇编
gcc -> as
gcc –c xxxxx.c -o xxxxxx.o
将汇编文件汇编为二进制文件
(4)链接
gcc -> collect2
gcc xxxxx.c -> a.out
将多个二进制文件进行链接
改变二进制文件显示 == :%!xxd==
回到普通模式状态: == :%!xxd -r==
Linux--gcc的基本用法相关推荐
- Linux GCC用法
GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言.但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran.Pascal.Objective ...
- C语言——程序的编译+链接(linux+gcc实现过程)
文章目录 前言 一.预处理 1.预处理阶段的操作: 1.预处理过程实现: 二.编译 1.编译阶段的操作: 2.编译过程的实现: 三.汇编 1.汇编阶段的操作: 2.汇编过程的实现: 四.链接 1.链接 ...
- linux中make的用法
一.linux中make的用法 目的: 基本掌握了make 的用法,能在Linux系统上编程. 环境: Linux系统 准备: 准备三个文件:file1. ...
- linux gcc中sin30度,学习gcc.pdf
学习gcc 如何在 Ubuntu 下安装和使用 gcc GCC 是在Linux 系统中用的比较多的编译器,一般做Linux 开发的朋友都会用 GCC 编译器,但今天 在 Ubuntu 上安装 GCC ...
- 深入剖析 linux GCC 4.4 的 STL string
转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...
- linux 中gcc运行命令,Linux gcc命令的具体使用
01. 命令概述 gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点. gcc是GNU编译器套件(GNU Compiler ...
- linux查询jiffies命令,Linux全局变量jiffies的用法
jiffies是Linux系统中的全局变量,与时间有关,那么jiffies变量具体有哪些作用呢?下面小编就给大家介绍下Linux全局变量jiffies的用法,感兴趣的朋友不妨来了解下吧. 系统运行时间 ...
- Linux之make的用法讲解,linux中make的用法
1.linux中make的用法 目的: 基本掌握了make 的用法,能在Linux系统上编程. 环境: Linux系统 准备: 准备三个文件:file1.c, file2.c, file2.h fil ...
- linux下svn的用法(转)
linux下svn的用法 2008-10-30 17:12:56 标签:linux svn 用法 [推送到技术圈] 来源:http://zhoutao.blog.51cto.com/425866/10 ...
- linux下find命令用法
一.Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} /; ...
最新文章
- 假如我们的坦克继续前进队——需求改进系统设计
- 得物App联合Zippo推出限量款打火机 首批开售十分钟即售罄
- 距离度量以及python实现(一)
- Hadoop运行错误——could only be replicated to 0 nodes, instead of 1
- Java 代码精简之道 | 凌云时刻
- 计算机统考模拟系统3.0,统考计算机模拟系统操作流程
- 常见视频封装格式(1) — AVI
- 虚拟机CentOS-7修改ip地址
- 愤怒的牛(重回基础二分)
- 1.1 pug常用命令
- 为什么SecureCRT里无法输入?
- 2021中国工业软件上市企业公司排行2021中国智能制造企业排名
- python量化分析
- 古人的智慧之回文诗——《两相思》
- Post请求body为list,校验里面的对象
- 云图说丨初识云速建站服务
- Java虚拟机(JVM)面试题(总结最全面的面试题!!!)
- js取服务器系统时间,JS中new Date()用法及获取服务器时间
- Xcode7.2配置OpenGL环境(包括GLTools)
- android新手引导页面,GuideHelper 实现Android新手引导页