【Linux】编译的四个步骤

news2024/11/16 19:45:26

目录

平常的使用:

安装软件

编写:vi/vim vscode

编译

执行 路径/文件名

计算机五大部件

编译四步

1.预编译(处理#)

2.编译(查错,代码到汇编)

3.汇编(汇编到二进制指令)

4.链接


平常的使用:

安装软件

ubuntu apt install xxx

红帽子 yum install xxx

编写:vi/vim vscode

main.c ->main.exe/main

c语言的源程序后缀必须是.c,硬盘上存放,计算机不能直接执行

编译

转换为二进制可执行程序.exe

执行 路径/文件名

如果文件在bin下就不用加路径

Linux和windows可执行程序的格式不一样,所以不能移植程序

Linux ELF格式

WIN  PE格式

/bin存放命令/可执行程序

计算机五大部件

运算器、控制器、存储器(内存)、输入设备i、输出设备o

三种总线:数据/地址/控制

电脑只认识01

汇编注记符无法解决跨平台的问题

高级语言可以

程序编译就是将高级语言转换成汇编注记符然后转换成01

编译四步

程序编译分为四步:1.预编译(Prepressing)2.编译(Compilation)3.汇编(Assembly)4.链接(Lunking)

1.预编译(处理#)

.cpp->.i

gcc -E main.c -o hello.i

处理#和//

2.编译(查错,代码到汇编)

.i->.s

gcc -S main.i -o main.s

语法检查:词法分析、语法分析、优化后生产相应的汇编代码文件

3.汇编(汇编到二进制指令)

.s->.o

gcc -c main.s -o mian.o

将汇编代码转变成机器可以执行的命令

4.链接

将一大堆本身就有的文件(printf这些别人的代码)链接起来

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

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

相关文章

157. 答读者疑问:为什么我的 manifest.json 文件无法正确被加载?

有教程的读者向我提问:已经完成了下列两个步骤的学习: SAP UI5 应用开发教程之十 - 什么是 SAP UI5 应用的描述符 DescriptorSAP UI5 应用开发教程之一百三十三 - SAP UI5 应用元数据文件 manifest.json 的加载和解析原理讲解自己本地 Visual Studio Code 开发了一个 SAP UI5…

SpringBoot+Mybatis-Plus+Thymeleaf+Bootstrap分页查询(前后端完整版开源学习)图书管理系统

目录分页主要逻辑,在3.7和3.81.准备工作1.1 参考博客1.2 项目结构2. 数据库3. 详细代码部分3.1 pom依赖3.2 application.yml3.3 BookMapper.xml3.4 BookMapper3.5 BookService 和 BookServiceImpl3.6 实体类entity book3.7控制层 BookController3.8 前端页面bookLis…

猿如意使用测评

本篇博客会记录使用猿如意这款产品的整体使用感受和相关建议,可以作为新人上手这款产品的参考 1. 猿如意的官方介绍 首先是官方对这款产品的介绍 猿如意是一款面向开发者的辅助开发工具箱,包含了效率工具、开发工具下载,教程文档&#xff0…

4.7 深入理解Spring

4.7.1 Spring 4.7.1.1 Spring模块 Spring 由七大模块组成,分别是 数据模块(Data Access / Integration)Web模块切面模块(Aop,Aspects)工具模块(Instrumentation)消息模块核心模块测试模块Spring模块4.7.…

08-09-Zookeeper客户端使用与经典应用场景

Zookeeper 集群模式: Zookeeper 集群模式一共有三种类型的角色 Leader: 处理所有的事务请求(写请求),可以处理读请求,集群中只能有一个Leader Follower:只能处理读请求,同时作为 Leader的候选节…

实现 effect reactive 依赖收集 触发依赖

03_01_实现 effect & reactive & 依赖收集 & 触发依赖 一、reactivity happy path 首先我们知道reactivity的happy path(核心逻辑)就是: 通过reactive定义响应式变量,然后通过effect去收集响应式变量的依赖,然后实现…

20221225英语学习

今日新词 giant adj.巨大的;超群的 appreciate v.欣赏,赏识;感激;理解,意识到;增值 invasive adj.侵入的,侵略的;开刀的 dispel vt.驱散,驱逐;消除 equa…

【2008NOIP普及组】T4. 立体图 试题解析

【2008NOIP普及组】T4. 立体图 试题解析 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 778 通过数: 542 【题目描述】 小渊是个聪明的孩子,他经常会给周围的小朋友讲些自己认为有趣的内容。最近,他准备给小朋友讲解立体图,请你帮他画出立体图。 小渊有一块面…

Windows下安装RabbitMQ

目录 安装Erlang环境 下载地址:https://erlang.org/download/ 下载后直接双击.exe安装即可。 安装完成后,创建环境变量。 安装完成后创建一个名叫ERLANG_HOME的环境变量,其指向erlang的安装目录; 将%ERLANG_HOME%\bin加入到Pa…

node.js+uni计算机毕设项目基于微信小程序订餐系统(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等…

2022 IoTDB Summit:Dr.Feinauer《Apache IoTDB 在德国汽车生产线多级数据同步中的应用实践》...

12 月 3 日、4日,2022 Apache IoTDB 物联网生态大会在线上圆满落幕。大会上发布 Apache IoTDB 的分布式 1.0 版本,并分享 Apache IoTDB 实现的数据管理技术与物联网场景实践案例,深入探讨了 Apache IoTDB 与物联网企业如何共建活跃生态&#…

【金猿人物展】树根互联COO黄路川:从“灯塔工厂”到“数字领航”,工业互联网操作系统助推新型工业化...

‍黄路川本文由树根互联联合创始人、COO黄路川撰写并投递参与“数据猿年度金猿策划活动——2022大数据产业趋势人物榜单及奖项”评选。‍数据智能产业创新服务媒体——聚焦数智 改变商业大数据时代,数字资产已经成为工业企业最核心的资产,成为企业数字化…

并发知识体系大全:贡献一波我平时学习/总结笔记/思维脑图+线程

这个世界都是并发的,编程里更是这样,俗话说:并发知识大,一口吃不下。想成为一名优秀的 Java 开发,学好并发,绝对是你走入高薪行列的必备能力之一。 并发涉及的知识点,其实十分琐碎。学完记不住…

2022圣诞代码(圣诞树+圣诞老人)

文章目录前言使用方法圣诞树圣诞老人前言 圣诞节里的喜悦,飘扬万里;圣诞树上的星星,璀璨耀眼;圣诞星空绽放的烟花,迎来吉祥;圣诞钟声奏响的旋律,传递欢乐;圣诞老人送给你的礼物&…

数据结构---位图算法

位图算法将数据存储到位图中查询数据是否在位图中JAVA代码问题扩展这里所说的位图并不是像素图片的位图&#xff0c;而是内存中连续的二进制位&#xff08;bit&#xff09;所组成的数据结构&#xff0c; 该算法主要用于对大量整数做去重和查询操作。System.out.println(1L <…

地质灾害安全监测预警解决方案

一、方案背景 我国地质和地理环境复杂&#xff0c;气候条件时空差异大&#xff0c;地质灾害种类多、分布广、危害大&#xff0c;是世界上地质灾害最严重的国家之一。地质灾害来源于自然和人为作用下对地质环境的灾难性后果&#xff0c;主要包括崩塌、滑坡、泥石流、地面塌陷和…

RV1126笔记十六:吸烟行为检测及部署<三>

若该文为原创文章,转载请注明原文出处。 训练并测试(windows) 一、yolov5安装 1、下载rk优化后的yolov5 git clone https://github.com/airockchip/yolov5.git 下载后,我是放到E:\miniconda3\envs目录下,miniconda3是安装miniconda的目录。可以放到其他地方,后续操作需要…

语音处理的算法和方法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Python pandas库|任凭弱水三千,我只取一瓢饮(7)

上一篇链接&#xff1a; Python pandas库&#xff5c;任凭弱水三千&#xff0c;我只取一瓢饮&#xff08;6&#xff09;_Hann Yang的博客-CSDN博客 to_系列函数&#xff1a;22个 &#xff08;12~22&#xff09; Function12 to_numpy(self, dtype: NpDtype | None None, co…

《网线制作》

前言&#xff1a; 随着计算机的快速发展&#xff0c; 现代 社会人们已经离不开网络&#xff0c;网络拉近了人们的距离&#xff0c;给人们提供了一个无需面对面就能够进行交流的平台&#xff0c;如今&#xff0c;网络已经渗透到生活的方方面面&#xff0c;购物、聊天、谈工作等…