Linux-vim与gdb与make/makefile

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

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.sgcc -c -o $@ $^
test.o:test.igcc -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.c2   gcc mytest.c -o mytest -std=c993 4 .PHONY:clean//.PHONY 类似于类型关键字,保证clean总是被执行5 clean://必须顶格写6   rm -f mytest //必须是tab                                

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

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

相关文章

文心一言 VS 讯飞星火 VS chatgpt (55)-- 算法导论6.3 1题

文心一言 VS 讯飞星火 VS chatgpt (55)-- 算法导论6.3 1题 一、参照图6-3 的方法,说明 BUILD-MAX-HEAP在数组 A(5,3,17,10,84,19,6,22,9)上的操作…

海睿思分享 | ChatGPT梦幻联动,解锁企业数字化转型新可能

在当今这个充满活力和变化的世界里,人工智能 (AI) 的迅速发展正在改变着我们的生活方式。它不仅提高了我们的工作效率,而且正在重新定义我们的日常生活,以前所未有的方式提高了我们的生活质量。其中,以ChatGPT为代表的语言生成模型…

Java 责任链模式

责任链模式 一、什么是责任链模式二、责任链模式的优势和劣势2.1 优势2.2 劣势 三、示例 一、什么是责任链模式 责任链模式定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链&…

【云效】使用流水线进行应用部署

目录 前言一、部署应用步骤1、创建流水线2、编辑流水线源3、编辑java构建上传4、编辑主机部署 前言 「流水线」,又名「Flow」,是阿里云「云效」产品矩阵中的一款企业级自动化研发交付工具。 它提供了灵活易用的持续集成、持续验证和持续发布功能&#…

ffmpeg学习记录

1、对图片进行裁剪 ffmpeg -i input.jpg -vf cropiw/3:ih:20:0 caijian.jpg PS: crop100:100:12:34 相同效果: cropw100:h100:x12:y34 2、视频增加文字水印 使用drawtext滤镜进行增加水印 参数 类型 说明 text 字符串 文字 textfile 字符串 文字文件 …

基于LLAMA-7B的lora中文指令微调

目录 1. 选用工程2. 中文llama-7b预训练模型下载3. 数据准备4. 开始指令微调5. 模型测试 前言: 系统:ubuntu18.04显卡:GTX3090 - 24G (惨呀,上次还是A100,现在只有3090了~) (本文旨在…

【Python】基于Python的机器学习分类的模型选择:交叉验证和模型质量评估

目录 1 简介2 思路分解与说明3 完整代码 1 简介 最近完成一个工作,就基于一些表格化的数据进行机器学习分类。 由于分类是研究中的关键步骤,所以首先要选择到底哪个模型适合我们的分类任务。 比较传统且经典的选择方法就是用交叉验证。 交叉验证是什么可…

传输控制协议 TCP

文章目录 一、TCP报文格式1.报头格式2.TCP最大段长度 MSS 二、TCP连接建立与释放1.连接建立:三次握手2.报文传输3.连接释放:四次挥手4.保持定时器与时间等待定时器 三、TCP差错重传1.字节流状态分类与滑动窗口(发送)① 滑动窗口两…

Spring Boot中的Elasticsearch自动配置

Spring Boot中的Elasticsearch自动配置 Elasticsearch是一个基于Lucene的分布式全文搜索引擎,它在搜索、分析等方面具有出色的表现。Spring Boot中的Elasticsearch自动配置为我们提供了一种快速集成Elasticsearch的方式,使我们可以在Spring Boot应用程序…

【探索 Kubernetes|作业管理篇 系列 16】离线业务 Job、CronJob

前言 大家好,我是秋意零。 在上一篇中,我们讲解了 DaemonSet 控制器,相信你以及理解了其的工作过程,分为三部。一是,获取所有 Node 节点中的 Pod;二是,判断是否有符合 DaemonSet 管理的 Pod&a…

Linux基础工具|C/C++编译器:gcc/g++的使用

1.基础使用 gcc是专门用来编译C语言的编译器,而g是编译C的编译器(也可以编译C语言,毕竟C语言兼容C)。Linux下gcc默认使用8字节的指针。 下载安装:gcc的安装指令“sudo yum install gcc”(在Linux里大部分…

固态硬盘优化设置

文章目录 前言关闭Windows Search禁用系统保护(不建议)不建议禁用系统保护原因 关闭碎片整理提升固态硬盘速度开启TRIM合理使用固态硬盘的容量正确关机关闭开机自启 前言 提示:这里可以添加本文要记录的大概内容: 电脑配备固态硬…