Linux期末复习——C编程基础

Linux下C语言编译环境概述

        编译器:VI

        编译器:GCC

        调试器:GDB

        项目管理器:make

vi编辑器

       三种模式 

        命令行模式:默认模式,不可以编辑,只可以上下移动光标“整行删除,删除字符”,“复制”,“粘贴”

        插入模式:只有在该模式下用户才可以文字编辑输入,esc返回命令行模式

        底行模式: 这个模式光标在底部,用户可以保存文件和退出,也可以设置编辑环境

        vi工作流程

  1. 在命令行输入 vi 文件名,进入默认模式
  2. 输入i(在光标当前位置插入),进入插入模式,esc返回命令行模式
  3. 输入:wq进入底行模式                                          

        

vi命令行模式部分功能键
i插入位置为光标位置
a插入位置为光标下一位置
o插入位置为光标下一行
/name光标后查找name字符串
?name光标签查找name字符串
x删除所在位置一个字符
X删除所在位置前一个字符
yy复制光标所在行
nyy复制光标所在行下n行

        gcc编译器

                编译流程(四个步骤):

                预处理阶段:对头文件和宏定义进行处理

                  gcc -E 文件名.c -o 文件名.i

                编译阶段:检查规范性,是否有错误,生成汇编代码

                gcc -S 文件名.i -o 文件名.s

                汇编阶段:把编译阶段生成的代码转换成目标文件

                gcc -c 文件名.s -o 文件名.c

                链接阶段:生成可执行文件

                gcc 文件名.c -o 文件名 

                库函数: 

                分为静态库和动态库

                静态库:编译链接的时候,将库文件代码全部加入可执行程序【生成的文件较大,运行就不需要库文件了】

                静态库:程序执行的时候才加载库【节省系统开销】

gdb调试器

        使用流程:

        1.gcc -g test.c -o test,使用gcc编译器编译程序,加上-g,让编译的代码中包含调试信息

        2.gbd 可执行文件名,使用gdb调试可执行文件

        3.键入l,查看所载入的文件,列出的代码给出了具体行号

        4.键入b 行号,设置断点

        5.键入info b,查看断点情况

        6.在断点键入bt,查看调用函数(堆栈)的情况

        7.键入r,执行程序到断点

        8.在断点处键入p 变量名,查看断点处相关变量值

        9.单步运行:n(next 不进入断点处函数)和s(step 执行完断点处函数)

        10.键入n,恢复程序运行

make工程管理器

        用于管理较多文件,根据时间戳减少编译工作量,通过makefile文件执行大量编译工作。

        makefile基本结构

                目标体:创建目标体所依赖文件

                        具体指令(这一行必须tab开头)

        makefile变量

        简化了makefile维护工作量

        常见预定义变量的作用:简化工作量

       makefile规则

         高效,为什么?简化了makefile操作,像批处理一样

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ消费者的可靠性

目录 一、消费者确认 二、失败重试机制 2.1、失败处理策略 三、业务幂等性 3.1、唯一消息ID 3.2、业务判断 3.3、兜底方案 一、消费者确认 RabbitMQ提供了消费者确认机制(Consumer Acknowledgement)。即:当消费者处理消息结束后&#x…

7+共病思路。WGCNA+多机器学习+实验简单验证,易操作

今天给同学们分享一篇共病WGCNA多机器学习实验的生信文章“Shared diagnostic genes and potential mechanism between PCOS and recurrent implantation failure revealed by integrated transcriptomic analysis and machine learning”,这篇文章于2023年5月16日发…

小程序获取头像和昵称的思路

小程序获取头像和昵称的基本方法是调用小程序自带的API wx.getUserProfile(),这也是小程序官方目前最推荐的做法。成功获取用户名头像之后,小程序允许保存调用的结果,以便下一次打开页面的时候自动显示头像和名字。保存用户名和头像并不是保存…

电子电器架构 —— 车载网关初入门(三)

电子电器架构 —— 车载网关初入门(三) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数5000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关…

Flask Shell 操作 SQLite

一、前言 这段时间在玩Flask Web,发现用Flask Shell去操作SQLite还是比较方便的。今天简单地介绍一下。 二、SQLite SQLite是一种嵌入式数据库,它的数据库就是一个文件,处理速度快,经常被集成在各种应用程序中,在IO…

【精】UML及软件管理工具汇总

目录 1 老七工具(规划质量) 1.1 因果图(鱼骨图、石川图) 1.2 控制图 1.3 流程图:也称过程图 1.4 核查表:又称计数表 1.5 直方图 1.6 帕累托图 1.7 散点图&#xf…

Java设计模式之状态模式

定义 对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 结构 状态模式包含以下主要角色。 环境角色:也称为上下文,它定义了客户程序需要的接口,维护一个…

java如何获取调用接口的ip?

获取调用者的ip 场景:想知道哪个ip访问的某个接口时,就需要打印出来看看,这时就可以使用这个方法了。 案例: //HttpServletRequest 入参加上,请求对象public ForkResponse queryXXX(RequestBody XXXX xxxx, HttpServletRequest …

Zynq-Linux移植学习笔记之64- 国产ZYNQ在linux下配置国产5396芯片

1、背景介绍 复旦微ZYNQ通过SPI配置国产JEM5396,框图如下: 现在需要在linux下的应用程序内配置JEM5396的寄存器。其中FMQL和进口的XILINX ZYNQ类似,JEM5396和进口的BCM5396兼容。因此可以参考进口ZYNQ在linux下配置BCM5396过程。Zynq-Linux移…

驾驶技巧_新手

人人都是老司机 1> 快速起步(手动挡)2> 窄路会车3> 转弯4> 变道 1> 快速起步(手动挡) 【B站】视频讲解 Step 1> 【快 停 慢放】左脚离合,快速抬到半联动点; Step 2> 离合器慢放同时加油! 2> 窄路会车 3> 转弯 4&…

C++学习初探---‘C++面向对象‘-继承函数重载与运算符重载

文章目录 前言继承继承是什么?三种访问权限的继承: 函数重载与运算符重载函数重载运算符重载可重载运算符&不可重载运算符 前言 第三次学习记录,依旧是C面向对象的内容。 继承 继承是什么? C中的继承是一种面向对象编程&am…

Kubuntu安装教程

目录 1.介绍 2.安装 3.配置 更新软件 中文输入法 美化 1.介绍 Kubuntu,是众多Ubuntu分支的一种,它采用KDE Plasma桌面为其默认桌面环境。它和Ubuntu采用同样的底层系统和软件库。基本上,Kubuntu和Ubuntu没有太大的差异,只是…

Spring Boot 3系列之一(初始化项目)

近期,JDK 21正式发布,而Spring Boot 3也推出已有一段时间。作为这两大技术领域的新一代标杆,它们带来了许多令人振奋的新功能和改进。尽管已有不少博客和文章对此进行了介绍,但对于我们这些身处一线的开发人员来说,有些…

【Truffle】二、自定义合约测试

一、准备测试 上期我们自己安装部署了truffle,并且体验了测试用例的整个测试流程,实际开发中,我们可以对自己的合约进行测试。 我们首先先明白自定义合约测试需要几个文件 合约文件:既然要测试合约,肯定要有合约的源码…

[EFI]asus strix b760-i 13900F电脑 Hackintosh 黑苹果efi引导文件

硬件型号驱动情况主板 asus strix b760-i 处理器 I9 13900F 已驱动内存crucial ddr5-5200 64gb(32gb*2)(overclock 5600)已驱动硬盘 WD black sn850 500g*2 已驱动显卡rx570已驱动声卡Realtek ALCS1220A已驱动网卡Intel I225-V 2.5 Gigabit Ethernet已驱动无线网卡蓝牙Fevi T91…

通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

Spring Cloud Alibaba 之 Sentinel

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

C++学习笔记之四(标准库、标准模板库、vector类)

C 1、C标准库2、C标准模板库2.1、vector2.1.1、vector与array2.1.2、vector与函数对象2.1.3、vector与迭代器2.1.4、vector与算法 1、C标准库 C C C标准库指的是标准程序库( S t a n d a r d Standard Standard L i b a r a y Libaray Libaray),它定义了十个大类…

x3daudio1 7.dll丢失怎么修复?多种x3daudio1 7.dll修复方法对比

x3daudio1_7.dll是Windows操作系统中的一个动态链接库文件,它主要负责处理音频相关的功能。当这个文件缺失或损坏时,可能会导致一些音频播放问题,如无声、杂音等。那么,x3daudio1_7.dll缺失的原因是什么呢?又该如何修复…

Unity 粒子特效-第五集-烟雾缭绕合并特效

一、特效预览 二、制作原理 1.素材介绍 我们之前几章做了有光球,星星,烟雾 我们把他们结合起来,做一些调整 2.合并方法 我们还是建一个粒子游戏物体 我们把所有的效果取消 再重置一下transform 现在这个物体就是一个可以控制粒子特效的空…