IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Linux基础之相关编译编译工具的基础使用 -> 正文阅读

[开发工具]Linux基础之相关编译编译工具的基础使用

文章目录

前言

vim编辑器

底行模式

命令模式:

gcc编译

gdb调试

Makefile

总结

前言

大家好,欢迎来到TheBlob的博客。时隔大半个月再次发Linux的文章,我也一度认为自己写的这些文章对各位没啥用处,因为与其说是文章,倒不如说是我的电子笔记更为合适。经过内心挣扎,决定还是继续发这些基础,希望能够帮助一些刚想入手却无从下手的小伙伴。话不多说开始献丑啦!


补充前面没有写上的基础命令

man ascii ????????????????????????????????????????查看ASCII

ctrl + C ????????????????????????????????????????????强行终止

shift + 粘贴 ?????????????????????????????????????从windows复制进去

在vim里面shift + k 进去看相关函数的用法

file xx ?????????????????????????????????????????????查看文件

readelf -a xx ??????????????????????????????????查看可执行文件的elf

vim编辑器

插入模式

i ????????????????????????????????????????????????从当前光标位置插入

I ????????????????????????????????????????????????从光标行头插入

a ????????????????????????????????????????????????从当前光标位置的后一个字符进行插入

A ????????????????????????????????????????????????从光标行尾插入

o ????????????????????????????????????????????????从光标的下一个行添加新行插入

O????????????????????????????????????????????????从光标的上一行添加新行插入

底行模式

q? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 退出

w? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?保存

wq ????????????????????????????????????????????????保存并退出

q!????????????????????????????????????????????????强制退出

wq! ?????????????????????????????????????????????强制保存并退出

x ???????????????????????????????????????????????????保存并退出

w hello.c ???????????????????????????????????????将编辑内容存到hello.c上

vs hello.c ?????????????????????????????????????分屏编辑

set nonu????????????????????????????????????????临时取消行号

%s/nihao/hello/g ??????????????????????????将文件全文的nihao变成hello

s/nihao/hello/g ?????????????????????????????将光标所在行nihao变成hello

/hello ???????????????????????????????????????????去文本搜索hello字符

set key=XXXXXX ????????????????????????设密码

r 文件名? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? 复制文件

例:????????????????????????????????????????????????r test.c 将test.c的内容复制到当前文件

命令模式:

yy ????????????????????????????????????????????????复制一行

nyy???????????????????????????????????????????????复制n行

dd ????????????????????????????????????????????????切剪/删除一行

ndd ??????????????????????????????????????????????剪切/删除n行

p ??????????????????????????????????????????????????粘贴

u ??????????????????????????????????????????????????撤销

gg ????????????????????????????????????????????????回到文件头部

gg=G ???????????????????????????????????????????自动排版(自动缩进)

G? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 回到文件尾部

r? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 替换一个字符

R? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?进入到替换模式

光标定位到行尾 ???????????????????????????shift + 4

光标定位到行头 ???????????????????????????shift + 6

光标定位到最后一行 ????????????????????hift + g (前面加 数字 可以定位到对应 行号)

定位到开头? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?gg

光标快速移动 ??????????????????????????????b w

光标上下左右 ?????????????????????????????h(左) j(下) k(上) l(右)

删除光标所在位置后的字符 ????????x

删除光标所在位置之前的字符? ? ?X

大小写切换? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?shift + ~

多开文件操作:

vs 文件名

切换文件 ctrl ww

不退出编译程序 !gcc 文件名

不退出查看函数 !man 函数名 或 鼠标点到函数 shift + k 进入

gcc编译器

预处理 编译 汇编 链接

*预处理:

*加载头文件

*宏展开

*删除注释

*处理了条件编译

gcc -E xx.c -o xx.i

*编译:

将代码编译成为汇编代码

gcc -S xx.i -o xx.s

或者: gcc -S xx.c -o xx.s

*汇编:

将汇编代码汇编成为可重定向文件

gcc -c xx.s -o xx.o

或者 gcc -c xx.c -o xx.o

---->不会检测函数是否存在,是需声明即可

*链接:

将各个可重定向文件链接成为可执行文件(目标文件)

gcc xx.o yy.o zz.o -o xx

或者: gcc xx.c yy.c zz.c -o xx

-----> 会去检测声明的对象或者函数是否存在

补充:

gcc  -v  -Wall   -O0  -g 
	-E 		//预处理
	-S 		//编译
	-c  	//汇编 
	-o 		//生成
	-v		//详细显示
	-Wall   //详细警告
	-On     // n是个数字 优化程度
			-O0  不优化 
			-O1  
			-O2 
			数字越大,优化程度越高,编译时间越长,执行时间越短
	-g 

gdb调试

安装gdb

sudo apt-get install gdb

*编译的时候,后面要加 -g

*为什么要用?

一步一步调试,查找段错误的位置

*如何使用:

gdb 可执行文件

例子:

gdb xx

  l  :  list显示代码
  r  :  run 运行 
  start  : 启动 
  		n  : next  不进入函数,直接执行
  		s  : step  进入到每一个函数里面
  p 变量名字 : printf 变量
  	例子 :
  		p i  打印出i的值  		
  b n : breakpoint 
  		n: 行 
  	例子:
  		b 15  		
  i b : infomation breakpoint 
  	查看所有的断点
  d 编号 : delete  num
  	例子:
  		d 3   //删除编号为3的断点  		
  c  : continue 继续   一个断
  q : quit : 退出

Makefile

*> make是一个项目管理工具

*> 使用:

*》安装make

sudo apt-get install make

*》书写 Makefile 的文件

*》按照make的规则,在Makefile中书写 代码

*Makefile基本姿势:

目标 : 依赖

(tab键) 命令

*声明:

????????依赖可以没有

????????命令也可以没有

????????目标就是我们要生成的东西

????????如果不需要生成目标,称该目标为伪目标

*make的使用:

make 目标 :

????????查看该目标文件是否存在,如果存在是否为最新。

????????如果不存在,则去生成,如果不需要生成,则该目标为伪目标

????????如果目标是整个Makefile中的第一个目标, 可以省略不写

优势:时间戳管理方式:

????????如果依赖没有目标新,那么就不需要重复编译,否则谁最新就编译谁

????????依赖文件必须存在,如果依赖不存在,make想方设法去生成(将其作为目标去生成)

cc -c -o xx.o xx.c

*伪目标:

????????我们不需要生成该文件,如果在项目中有该文件,则该伪目标由于没有依赖,永远是最新,顾不再执行,解决方式

????????.PHONY : 伪目标

* 变量赋值:

* 简单赋值

:=? ?????????????????????在当前行有效

* 递归赋值

=????????????????????????递归查找某变量的最后一个值

* 条件赋值

?=??????????????????????如果某变量已经定义,那么该语句无效

* 追加赋值

+=?????????????????????对某个变量进行追加操作

* 如果想隐藏命令(只执行,不显示),在命令前面加上@

echo : 打印的命令

$^ ---> 代表所有的依赖

$@ ---> 代表目标

$< ---> 代表第一个依赖

make -C 文件夹(目录)

-----》执行该 目录 下面的 Makefile下的第一个目标

make -C 文件夹(目录) 目标

-----》执行该 目录 下面的 Makefile下的目标

友情提示:

对于刚开始学的时候可以先把通讯录这种C语言初学者的小项目进行管理来练手,初步的熟悉一下Makefile的相关格式。


总结

以上就是Linux中相关工具的基本操作了,掌握了这些能够满足处于新手阶段在Linux上编写、调试C语言代码、并且还能初步了解项目管理。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:26:35  更:2022-08-19 19:30:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:56:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码