当前位置: 首页 > backend >正文

gcc编译器

gcc编译器-完整版

如果有帮助的话,可以给我GitHub点和Star吗🎉

GCC简介

GNUGNU's Not Unix!的递归缩写。

GNU是一个技术组织。GNU计划,又称革奴计划,目标是创建一套完全自由的软件操作系统。

GCC 是由GNU开发的能够编译多种编程语言的编译器。

  • 最初,GCC是指GNU C Compiler(GNU C语言编译器),只能处理C语言。
  • 随着时间发展,GCC 项目扩展了功能,开始支持多种编程语言(C++, Objective-C, Fortran, Ada, Go, D 等)。因此,GCC 现在的官方含义是GNU Compiler Collection” (GNU 编译器套件)。它是一个包含多种语言编译器的集合。

gcc常用参数

选项说明
-v/–version查看gcc的版本
-I(大写的i)编译的时候指定头文件路径,不然头文件找不到
-c将汇编文件转换成二进制文件,得到.o文件
-ggdb调试的时候需要加
-D编译的时候指定一个宏(调试代码的时候需要使用例如printf函数,
但是这种函数太多了对程序性能有影响,因此如果没有宏,则#ifdefine的内容不起作用)
-wall添加警告信息
-On-O是优化代码,n是优化级别:1,2,3

gcc工作流程

gcc工作流程,即编译汇编的四个阶段:预处理(预编译)、编译、汇编和链接。

  1. 预处理(-E)
gcc -E test.c -o test.i

执行预处理,由源代码test.c 生成 test.i 源文件/中间文件
2. 编译(-S)

gcc -S test.i -o test.s

由 test.i临时文件 生成 test.s 汇编文件

gcc -S test.c

执行预处理和编译,输出 test.s 汇编文件。
3. 汇编(-c)

gcc -c test.s -o test.o

由 test.s 汇编文件 生成 test.o 二进制目标文件

gcc -c test.i -o test.o

执行 编译、汇编。

gcc -c test.c

执行 预处理、编译、汇编。
4. 链接

gcc test.o -o test

将目标文件(.o)链接到一起生成可执行程序(可执行文件),静态库文件(.a)直接嵌入可执行程序,对于动态库(.so)可执行程序中记录依赖关系。

http://www.xdnf.cn/news/10204.html

相关文章:

  • Cloudflare
  • 【Ant Design】解决树形组件面板收起问题
  • Java多线程文件下载和处理程序
  • 仿真每日一练 | 静力学分析与动力学分析的区别
  • QT 第一讲 --- 基础篇 Qt 基础环境搭建
  • 做销售讲究接地气
  • 【Python-Day 20】揭秘Python变量作用域:LEGB规则与global/nonlocal关键字详解
  • 太阳诱电多层陶瓷电容器的优势和特点
  • springboot java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver应该如何解决
  • leetcode题解513:找树左下角的值(递归中的回溯处理)!
  • 【CF】Day70——Codeforces Round 896 (Div. 2) CD1 (排列 + 构造 | ⭐思维 + 数学)
  • 20250530-C#知识:抽象类、抽象方法、接口
  • nt!FsRtlFindLargeIndex函数分析计算在那个Mapping[(I)]数组中
  • 基于Java 实现 IM 业务回调
  • Java 之殇:从中流砥柱到“被温柔替代”
  • LeetCode Hot100(动态规划)
  • 04-redis-分布式锁-edisson
  • yum安装nginx后无法通过服务方式启动
  • 企业知识库问答系统避坑指南:检索优化与生成一致性解决方案
  • [ctfshow web入门] web80
  • 2.测试项目启动和研读需求文档
  • js 动画库、2048核心逻辑、面试题add[1][2][3]+4
  • Datatable和实体集合互转
  • 华锐视点助力,虚拟旅游绽放更璀璨光彩​
  • 图书管理系统的设计与实现
  • 北京大学肖臻老师《区块链技术与应用》公开课:06-BTC-网络
  • canoe 排查配置相关【graphics,capl】
  • Python基本运算符
  • python装饰器
  • DSP处理数字信号做什么用的?