2023-简单点-编译是什么?gcc是什么?

编译目的

把一种 程序 变成 另一种更接近机器指令

编译的术语

“接近专家的最快方法第一步,直接了解100+行业黑话”

那么来了解一下,编译过程中的黑话:

  • 词法分析
  • 语法分析
  • 中间代码
  • 目标代码
  • 代码优化
  • 出错管理
  • 表格管理

gcc是个什么?

一种编译工具

gcc干了什么?

  • 预处理
  • 编译
  • 汇编
  • 链接

例如,
把#incldue #ifdef #if这种命令预先处理掉
把c变成汇编语言对应的文件.asm
汇编把汇编语言文件变成机器码文件
链接是把各种文件组装成可运行整体

在这里插入图片描述

gcc用法

尽然知道了,是什么,干了什么,还要知道怎么用。
对应上面的

  • 预处理 gcc -E xx.c -o xx.i
  • 编译成汇编 gcc -S xx.i
  • 汇编成机器码 gcc -c xx.i
  • 链接gcc demo.c -o demo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/73207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL5.7 在Window平台安装

一、下载 在MySQL的官网下载安装包 MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ 这里我选择的是x64的ZIP安装包;点击Download下载 这里我选择的是直接开始下载 二、解压与初始化 将下载好的安装包解压,这里我解…

Qt应用开发(基础篇)——向导对话框 QWizard

一、前言 QWizard类继承于QDialog,为有向导界面需求的应用环境提供了一个框架。 对话框窗口 QDialog QWizard向导对话框是一个拥有队列界面的特殊对话框,向导的目的是引导用户一步一步的完成预设的流程。向导常用于软件安装界面向导、硬件线路安装向导、…

安全运营中心(SOC)技术框架

2018年曾经画过一个安全运营体系框架,基本思路是在基础单点技术防护体系基础上,围绕着动态防御、深度分析、实时检测,建立安全运营大数据分析平台,可以算作是解决方案产品的思路。 依据这个体系框架,当时写了《基于主动…

Emgu调用摄像头

1,安装EMgu 2,调用摄像头 public FaceLoad(){InitializeComponent();try{capture new Capture();capture.Start();//摄像头开始工作capture.ImageGrabbed frameProcess;//实时获取图像}catch (NullReferenceException excpt){//MessageBox.Show(excpt.Message);}}…

[docker]笔记-portainer的使用

1、安装完成后输入ip加端口号打开网页,并再相应位置输入初始密码,初始密码自行设置。 2、进入主页后可以看到如下图标: 3、选择docker环境,即可展示目前docker信息 可以看到目前有1个容器,3个卷和4个镜像&#xff0c…

Android获取 H264视频流中的SPS和PPS

代码其实很简单,主要是要知道H264帧数据结构。分析H264码流结构的文章一大把,自己网上搜索一下就知道了。 背景: h264aac封装mp4格式的时候,需要获取视频流的sps,pps。 封装mp4文件格式的大体方案 使用 MediaExtractor 和 Medi…

RT-Thread UART

UART 简介 UART(Universal Asynchronous Receiver/Transmitter)通用异步收发传输器,UART 作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。是在应用程序开发过程中使用频率最高的数据总线。 UART …

【已解决】uniapp使用vant-ui中的tab标签页的时候,发现底下红色的切换线不见了

问题截图 解决办法 按F12查看vant-ui源码你会发现他的Tab标签页里面有个width,但是我们引入到uniapp之后发现width没有了(不知道什么情况,可能是兼容问题吧) 所以我们解决的办法,只需要在App.vue中给全局.van-tabs__l…

ARM+Codesys标准通用型控制器

整机工业级设计,通讯外设经过隔离保护 电源宽电压设计(9~36V DC ) 丰富的通讯接口,满足多种场合控制和通讯需求 四核工业级处理器,高性能,低功耗,高可靠性 机身无风扇设计,外壳小巧 搭载内核 100% 自主…

掌动智能国产化测试工具的重要性与优势

在信息技术领域的快速发展下,对于软件和硬件产品的质量和性能要求也日益提高。同时针对信创要求,国产化测试工具在这个过程中发挥着重要的作用,不仅能够提升产品的可靠性和稳定性,还能够降低测试成本和提高测试效率。作为国内领先…

2023高教社杯 国赛数学建模A题思路 - 定日镜场的优化设计

1 赛题 A 题 定日镜场的优化设计 构建以新能源为主体的新型电力系统, 是我国实现“碳达峰”“碳中和”目标的一项重要 措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站(以下简称塔式电站)收集太阳能的基本组件&…

常见项目管理中npm包操作总结

前言 我们在日常工作中,可能需要下载包、创建包、发布包等等。本篇推文将记录日常项目中关于npm包的操作。 引用包 npm仓库公开的包我们都可以通过npm install的命令进行引用下载。 而我们开发的业务公共组件需要在公司内部项目公共引用,而不希望公开为外…

使用 System.exit() 来优雅地终止 Spring Boot 项目

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: 使用 System.exit() 来优雅地终止 Spring Boot 项目 ⏱️ 创作时间&am…

构建普适通用的企业网络安全体系框架

在当今数字化时代,网络安全已成为企业保护信息资产和业务运行的重要任务。恶意攻击、数据泄露、网络病毒等威胁不断演进,给企业和个人带来了巨大风险。为了应对这一挑战,许多企业已经采取了一系列网络安全措施,如制定了网络安全政…

CMU15445 fall 2022/spring 2023 项目环境搭建+选择合适的版本

前言 CMU15445是一门关于数据库管理系统(DBMS)的设计和实现的优秀课程。由数据库领域大佬Andy主讲,同时还有迟策大佬所设计和维护的BusTub,其名声在外之处更是有着极高质量的作业(HOMEWORKS)和项目&#x…

虚函数、纯虚函数、多态

一.虚函数 在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据所指对象的实际类型来调用相应的函数,如果对象类型是派生类,就调用派生类的函数,如果对象类型是基类,就调用基类的函数。 …

React基础

目录 TODO1 React概述 React的使用 React脚手架的使用 全局安装 npx安装 在脚手架中使用React JSX 1. JSX的基本使用 1.1 为什么用JSX 1.2 JSX简介 1.3 使用步骤 1.4 脚手架中能用JSX 1.5 注意点 2. 在JSX中使用JavaScript表达式 2.1 嵌入js表达式 2.2 注意点 3…

小节3:数据类型

Python的数据类型包括:字符串(str)、整数(int)、浮点数(float)、布尔类型(bool)、空值类型(NoneType)、列表(list)、字典&…

JUC P8 ThreadLocal 基础+代码

JUC P8 ThreadLocal 基础代码 教程:https://www.bilibili.com/video/BV1ar4y1x727?p100 引出问题 ThreadLocal 和 TreadLocalMap 数据结构关系? ThreadLocal 中的 key 是弱引用,为什么? ThreadLocal 内存泄漏问题是什么&#x…

协程 VS 线程,Kotlin技术精讲

协程(coroutines)是一种并发设计模式,您可以在Android 平台上使用它来简化异步执行的代码。协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。 在 Android 上,协程有助于管理长时间运行的任务,如果管理不当&a…