Linux-vim与gdb与make/makefile

news2024/11/25 8:18:15

三个模式:命令模式 文本模式  底行模式

yum  :instell 安装   remove 卸载

 gcc -o执行后生成文件命名 

gcc 1.c  -o   fst.out

-E预编译  

-S汇编

-c生成机器码

Linux  中 静态库:.a;动态库:.so

Linux默认动态库,想要静态库编译的时候加上 - static

一般来说,linux下编译后的文件是形成release发行版本,如果想要debug发行版本就要在在编译时加上-g指令

gdb指令

n F10

s F11

display -变量  常查看变量变化

P  -变量  临时查看当前数据

display  变量名    查看监视数据

b 行号   :打该行号断点

d 删除断点,看的是断点编号

disable 禁用断点

enable 启用断点  编号

info 查看断点

c(continue)运行到下个断点 

finish 完成该函数

until 运行到当前函数指定行

bt查看函数堆栈

 make

 make是指令,makefile是文件中有依赖关系与依赖方法

在makefile文件中写

make [目标方案];

如果没有写目标方案,就从上到下执行第一条依赖关系。

# make

//makefile中内容:

test:test1.o  //执行这条依赖关系,如果依赖方未生成就会向下继续,直到允许执行才会放回
    gcc -o $@ $^
test.o:test2.s
    gcc -c -o $@ $^
test.o:test.i
    gcc -S -o $@ $^
test.i:test3.c     //存在test.c文件开始编译然后向上,如果有一个地方没有依赖文件就报错
    gcc -E -o $@ $^

make会比对依赖文件与目标文件的modify时间前后,

如果依赖文件的时间早于目标文件,那么就不会生成新的目标文件,touch 已存在文件可以更新时间

如果依赖文件的时间早于目标文件,那么就会生成新的目标文件,

.PHONY:目标文件:执行不在查看文件是否新旧,总是目标文件被执行

 然后再外面就可以直接使用make调用里面的指令

[zjy@VM-12-17-centos class3]$ vim Makefile
[zjy@VM-12-17-centos class3]$ make
gcc mytest.c -o mytest -std=c99
[zjy@VM-12-17-centos class3]$ ls
Makefile  mytest  mytest.c  mytest_nostatic  mytest_static
 1: Makefile+  ⮀                                                             
  1 mytest:mytest.c
  2   gcc mytest.c -o mytest -std=c99
  3 
  4 .PHONY:clean//.PHONY 类似于类型关键字,保证clean总是被执行
  5 clean://必须顶格写
  6   rm -f mytest //必须是tab                                

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

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

相关文章

Redis的安装,启动,关闭

一,redis安装linux 1,安装gcc环境 yum -y install gcc-c2,上传压缩包到/usr/soft目录,并解压 cd /soft tar -xvf redis-3.2.11.tar.gz3,进入redis-5.0.7目录,使用make命令编译redis [rootlocalhost soft]# cd re…

【DBA课程-笔记】第1章:MongoDB数据库入门

一、MongoDB 概览及新特性 1. MongoDB 简介 目前最流行的NoSQL数据库(NO.1)MongoDB是一个基于分布式文件存储的数据库,由C语言编写,特点是高性能、易部署、易使用、存储数据非常方便,旨在为Web应用提供可扩展的高性能…

企业该如何防止数据泄漏问题

关键词:企业网盘、知识文档管理系统、群晖NAS、数据安全 根据Verizon《2022 数据泄露调查报告》显示,2022年数据泄露事件中82%的违规行为涉及人为因素,勒索软件泄露事件增加了13%,超过过去五年的总和,数据安全已变成关…

【JUC-7】ReentrantLock (可重入锁)基础

ReentrantLock (可重入锁) ReentrantLock实现了Lock接口, 内部通过继承AQS, 实现了一个同步器. 可以通过同步器来创建Condition条件变量, 可以用作容器, 存放不同条件的等待线程. 说明ReentrantLock与AQS的关系 类图: 相对于synchronized, 都支持可重入. 它还具备如下特点: …

【算法练习】24:凯撒密码

一、凯撒密码介绍: 采用替换的方式对英文字母进行处理,将每一个英文字符循环替换为字母表序列中该字符的后面的第三个字符,即循环右移3位。 明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文字母表:DEFGHIJKLMNOPQRSTUV…

微信小程序如何读取本地云存储txt数据,避免乱码

第一步 找到你的txt文件,重命名为json文件 第二步 上传到云存储中,获取File ID 第三步 编写js代码 相关技术文档: https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.readFile.html onShow(){wx.cloud.d…

《Redis 核心技术与实战》课程学习笔记(三)

高性能 IO 模型:为什么单线程 Redis 能那么快? Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删…

CDS Core Data Services S4 CDS view--2

7.2 怎么加注释 首先要看懂注释,comparefilter 一般都是true,这样在association 里的join只被验证一次,如果是FALSE就会不停的被验证。 preservekey, 验证和数据库表的key是否一致。 authorizationcheck, 需要验证权限。不过我们没有设access control…

STM32F1 GPIO 简介

GPIO 是控制或者采集外部器件的信息的外设,即负责输入输出。它按组分配,每组 16 个 IO 口,组数视芯片而定。STM32F103ZET6 芯片是 144 脚的芯片,具有 GPIOA、GPIOB、GPIOC、 GPIOD、GPIOE、GPIOF 和 GPIOG 七组 GPIO 口&#xff0…

13---罗马数字转整数

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xf…

【DBA课程-笔记】MongoDB入门到云上开发

课程目的:成为专业MongoDB的DBA nosql第一:MongoDB 一、讲师: 二、课程目录 第1章:MongoDB数据库入门 第2章:MongoDB数据数据查询与分析 第3章:MongoDB数据库核心知识 第4章:MongoDB数据库管…

时间序列预测 | Matlab基于粒子群算法优化门控循环单元(PSO-GRU)的时间序列预测,PSO-GRU时间序列预测,单列数据集

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测 | Matlab基于粒子群算法优化门控循环单元(PSO-GRU)的时间序列预测,PSO-GRU时间序列预测,单列数据集。 优化参数为学习率,隐藏层节点个数,正则化参数,要求2020b及以上版本&#

Redhat7.6安装mysql5.7

环境准备:硬盘剩余空间最少8G,内存剩余最少2G Mysql官网下载地址:https://dev.mysql.com/downloads/mysql/5.7.html 在Mysql官网下载列表中选择需要安装的版本: RedHat7.6安装MySQL5.7 安装之前,先要保证系统环境是干净的,不能存…

Dual In-Line Package(双列直插式封装)和Pin Grid Array Package(针栅阵列插入式封装)

DIP封装示意图 1.Dual In-Line Package(双列直插式封装) DIP的详细介绍: 1.封装形式:DIP是一种插件式封装,它由一个狭长的塑料或陶瓷封装体组成,具有在两侧排列的引脚。引脚通常是分布均匀的&#xff0c…

17. 订单金额趋势分析

文章目录 题目需求思路一实现一实现二:使用 over(range)学习链接题目来源 题目需求 查询截止每天的最近3天内的订单金额总和以及订单金额日平均值,保留两位小数,四舍五入。 最近三天 的业务逻辑通常是基于当天往前推2天 期望结果如下&#x…

Kepware.KEPServer安装

1.1 Kepware.KEPServer安装 1.1.1 解压并安装 首先解压并安装KEPServerEX v4.500.465.zip,右键点击KEPServer执行文件进行安装,如图2-2-14所示, 图2-2-14 2) 运行KEPServer安装文件之后出现如图2-2-15所示:点击Next继续。 图2-2-15 3) 选择I accept the tems of the lice…

Keras-5-深度学习用于文本和序列-处理文本数据

深度学习用于文本和序列 说明: 本篇学习记录为:《Python 深度学习》第6章第1节(处理文本数据) 知识点: 深度学习处理文本或序列数据的基本方法是:循环神经网络 (recurrent neural network) 和 一维卷积神经网络 (1D convert)&…

Python中怎样用索引和切片取出字符串片段?

Python 语言为字符串中的元素编号,以实现对字符串中的单个字符或字符片段的索引。按照不同的方向,索引分为正向索引和逆向索引。假设字符串的长度为L,正向索引中字符串的字符编号从左至右由0递增为L-1,逆向索引中字符串的字符编号…

【雕爷学编程】Arduino动手做(151)---S12SD紫外线模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

022、数据库管理之数据迁移工具(DM)

DM Data Migration架构与原理适用场景下载安装组件编辑初始化配置文件执行部署命令查看DM集群检查DM集群情况启动集群 DM配置概览上游数据库(数据源)配置任务配置过滤配置分库分表合并迁移性能优化常见问题 dmctl检查与启动任务暂停任务恢复任务查询任务停止任务 实验部署DM集群…