Makefile 学习笔记(一)gcc编译过程
环境准备
.linux 系统(虚拟机)
VS code
linux 编译过程
预处理: 把.h .c 展开形成一个文件.宏定义直接替换 头文件 库文件 .i
汇编: .i 生成一个汇编代码文件 .S
编译: .S 生成一个 .o .obj
链接: .o 链接 .exe .elf
gcc c语言
g++ c++语言
gcc的使用
#include "stdio.h"#define P "hello gcc"
#define PRT printfint main()
{PRT(P);return 0;
}
-E 预处理
gcc -E hello.c -o hello.i 生成.hello.i 文件
生成.i文件的时候,已经将宏定义的的数据替换好了

-S汇编
gcc -S hello.i -o hello.S
.file "hello.c".section .rodata
.LC0:.string "hello gcc".text.globl main.type main, @function
main:
.LFB0:.cfi_startprocpushq %rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq %rsp, %rbp.cfi_def_cfa_register 6movl $.LC0, %edimovl $0, %eaxcall printfmovl $0, %eaxpopq %rbp.cfi_def_cfa 7, 8ret.cfi_endproc
.LFE0:.size main, .-main.ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609".section .note.GNU-stack,"",@progbits
-c 编译
gcc -c hello.S -o hello.o 生成一个二进制文件
-o 链接
gcc hello.o -o hello 链接成可执行文件
编译同目录下面的多个gcc文件
gcc 1.c 2.c 3.c -o hello
相关文章:
Makefile 学习笔记(一)gcc编译过程
环境准备 .linux 系统(虚拟机) VS code linux 编译过程 预处理: 把.h .c 展开形成一个文件.宏定义直接替换 头文件 库文件 .i 汇编: .i 生成一个汇编代码文件 .S 编译: .S 生成一个 .o .obj 链接: .o 链接 .exe .elf gcc c语言 g c语言 gcc的使用 …...
mybatis的基本使用与配置
注释很详细,直接上代码 项目结构 源码 UserMapper package com.amoorzheyu.mapper;import com.amoorzheyu.pojo.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;import java.util.List;Mapper //在运行时生成代…...
2022高教社杯全国大学生数学建模竞赛C题 问题三问题四 Python代码
目录 问题33.1 对附件表单 3 中未知类别玻璃文物的化学成分进行分析,鉴别其所属类型3.2 对分类结果的敏感性进行分析 问题44.1 针对不同类别的玻璃文物样品,分析其化学成分之间的关联关系绘图散点图相关系数图 问题3 3.1 对附件表单 3 中未知类别玻璃文物…...
易于理解和实现的Python代码示例
一些示例代码段,但请注意,由于无法直接执行或访问特定环境,将提供一些通用的、易于理解和实现的Python代码示例。这些示例旨在展示编程的不同方面,从基础到稍微复杂一点的概念。 示例1:简单的Python函数 def greet(n…...
Visual Studio 2019/2022 IntelliCode(AI辅助IntelliSense)功能介绍
IntelliCode 不知在多久以前,我装上了Visual Studio 2019,写代码时,就注意到了下面这样的东西:带五角星的提示。 这个带五角星的提示功能叫做IntelliCode。 我们知道Visual Studio 有个强大的功能叫做Intellisense(智能感知)&am…...
mac安装swoole过程
1.很重要的是得根据自己环境的php版本来选择swoole版本!否则都是做无用功。 Swoole 文档 2.通常pecl install swoole是安装最新版本的,当然安装的方式很多种,这里选择编译安装,因为可以选择不同的swoole版本进行安装,…...
代码随想录算法训练营第三十二天 | 509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯
第三十二天打卡,动态规范第一天!今天比较简单,主要理解dp的概念 509.斐波那契数列 题目链接 解题过程 状态转移方程 dp[i] dp[i - 1] dp[i - 2]; 动态规划 class Solution { public:int fib(int n) {if (n < 2) return n;int dp[n …...
Oracle发送邮件功能:配置自动化发信指南?
Oracle发送邮件服务设置方法?怎么用Oracle数据库发信? Oracle数据库作为企业级应用的核心,其内置的发送邮件功能为企业提供了强大的自动化工具。AokSend将详细介绍如何配置Oracle发送邮件功能,以实现自动化发信,从而提…...
探索 InternLM 模型能力边界
Bad Case 1. 模型服务来源compassarea输入我刚才问了什么问题模型AInternLM2.5-20B-Chat (上海AILab书生浦语)模型BQwen2-72B-Instruct (阿里通义千问)模型A输出对不起,由于我无法访问之前的交互历史记录,我无法回答您刚才问的具体问题是什么。不过&am…...
Python 数学建模——Pearson/Spearman 相关系数
文章目录 前言原理关于 p p p 值Pearson 相关系数代码实例Spearman 相关系数代码实例求相关系数求相关系数矩阵 前言 相关系数尝尝用来衡量两个数值变量之间是否存在某种关系。我们常说的“正相关”“负相关”就是这种相关关系。而相关系数的绝对值大小体现了相关关系的强弱。…...
QUIC的loss detection学习
PTO backoff backoff 补偿 /ˈbkɒf/PTO backoff 是QUIC(Quick UDP Internet Connections)协议中的一种机制,用于处理探测超时(Probe Timeout, PTO)重传策略 它逐步增加探测超时的等待时间,以避免网络拥塞…...
【QT】使用QOpenGLWidget后,窗口全屏之后右键菜单出不来的问题
问题 QMainWindow全屏之后,发现右键菜单出不来了,后来排查到问题是和窗口中使用了QOpenGLWidget控件有关系。 解决方案 在QMainWindow构造函数末尾,添加这句话(作用是给窗口周围增加1像素线,实现伪全屏)…...
MySQL 8.0授权语法变更及解决方案
MySQL 8.0授权语法变更及解决方案 授权语法变更:MySQL 8.0更改了授权语法,无法直接在授权语句中使用IDENTIFIED BY来创建用户并设置密码。需要先创建用户,再单独授权。 创建用户并授权: 使用CREATE USER语句创…...
2024 VMpro 虚拟机中如何给Ubuntu Linux操作系统配置联网
现在这是一个联网的状态 可以在商店里面下载东西 也能ping成功 打开虚拟网络编辑器 放管理员权限 进行设置的更改 选择DNS设置 按提示修改即可 注意的是首选的DNS服务器必须是114.114.114.114 原因 这边刚刚去查了一下 114.114.114.114 是国内的IP地址 8.8.8.8 是国外的I…...
详解Diffusion扩散模型:理论、架构与实现
本文深入探讨了Diffusion扩散模型的概念、架构设计与算法实现,详细解析了模型的前向与逆向过程、编码器与解码器的设计、网络结构与训练过程,结合PyTorch代码示例,提供全面的技术指导。 关注TechLead,复旦AI博士,分享A…...
坐牢第三十八天(Qt)
1、使用Qt绘画事件处理画一个闹钟 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QPaintEvent>//画画处理事件 #include <QPainter>//画画 #include <QTime> //时间类 #include <QTimer>…...
(十五)、把自己的镜像推送到 DockerHub
文章目录 1、登录Docker Hub2、标记(Tag)镜像3、推送(Push)镜像4、查看镜像5、下载镜像6、设置镜像为公开或者私有 1、登录Docker Hub 需要科学上网 https://hub.docker.com/ 如果没有账户,需要先注册一个。登录命令如…...
【云岚到家-即刻体检】-day07-2-项目介绍及准备
【云岚到家-即刻体检】-day07-2-项目介绍及准备 1 项目介绍1)项目简介2)界面原型3)实战目标 2 搭建实战环境1)服务端2)管理端前端工程3)用户端前端工程4)测试 3 熟悉项目代码1)接口文…...
SpringCloud Alibaba之Nacos服务注册和配置中心
(学习笔记)nacos-server版本:2.2.3 总体介绍: 1、Nacos介绍 官网:Nacos官网| Nacos 配置中心 | Nacos 下载| Nacos 官方社区 | Nacos 官网 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字…...
面试官:讲一讲Spring MVC源码解析
好看的皮囊千篇一律、有趣的灵魂万里挑一 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。…...
提升效率:用快马AI一键生成windows18-hd19风格的CSS组件库
提升效率:用快马AI一键生成windows18-hd19风格的CSS组件库 最近在做一个需要windows18-hd19设计风格的项目,这种风格的界面元素特别多,手动编写样式简直让人头大。光是调色板、阴影效果这些基础样式就要折腾半天,更别说那些复杂的…...
Phi-4-mini-reasoning实战教程:批量处理CSV数学题库生成标准答案
Phi-4-mini-reasoning实战教程:批量处理CSV数学题库生成标准答案 1. 引言 数学老师们经常面临一个共同挑战:批改大量数学作业和试卷需要花费大量时间。传统方法需要逐题检查,效率低下且容易出错。今天,我们将介绍如何利用Phi-4-…...
数据仓库核心概念:事实表和维度表详解与实战应用
数据仓库核心概念:事实表和维度表详解与实战应用一、引言二、定义:什么是事实表?什么是维度表?2.1 事实表:定义2.2 维度表:定义三、结构流程图:事实表与维度表关联关系3.1 标准星型模型关联流程…...
2026最权威的AI写作神器解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在学术研究范畴之内,人工智能技术的深度交融催生出了多种具备专业性的学术辅助平…...
别再只会用AT指令了!用GD32F103驱动ESP8266实现MQTT连接阿里云(附完整源码)
从AT指令到MQTT协议:GD32F103ESP8266直连阿里云物联网平台实战 在物联网设备开发中,ESP8266作为性价比极高的Wi-Fi模块,常被用于实现设备联网功能。大多数开发者对它的认知停留在AT指令操作层面,通过串口发送简单的AT命令实现TCP连…...
ProfControl V8的介绍 阵列生成
作者:刘凌波链接:环野电子, profcontrolhttp://oa.profcontrol.cn/teaching_V8-7926f783c6.html来源:ProfControl阵列生成ProfControl支持基于仿射变换的阵列快速生成方式,ProfControl支持对各种对象进行阵列生产(包括…...
[拆解LangChain执行引擎-07] 静态上下文在Pregel中的应用
在 Pregel 模型中,静态上下文是一个专门设计的依赖注入容器。它的出现是为了解决在复杂的图计算中,如何优雅地处理“不属于图状态,但Node运行又必须依赖的外部环境信息”这一痛点。这些数据具有一个共同的性质,那就是在整个运行生…...
Awoo Installer:让Switch游戏安装像呼吸一样简单
Awoo Installer:让Switch游戏安装像呼吸一样简单 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Switch游戏安装的各种繁琐步骤头…...
终极指南:如何使用Harepacker-resurrected打造个性化MapleStory游戏体验
终极指南:如何使用Harepacker-resurrected打造个性化MapleStory游戏体验 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 你是否曾…...
实战教你用美股api获取实时行情与报价
前几天我在整理投资数据,突然发现自己平时关注的几支热门美股,价格波动比新闻还快。光靠网页刷新完全跟不上节奏,尤其是NVDA、META这样的科技股,几分钟就能有明显变化。想随时看到最新行情,又不想盯着网页刷新…...
