linux重温bingc(基本yummake)

Posted 鸟随二月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux重温bingc(基本yummake)相关的知识,希望对你有一定的参考价值。

文章目录

基本命令

history:历史执行的命令

	想要执行历史的命令:可以使用向上箭头
	![以往执行的命令的编号]

tar压缩

文件权限

chmod +t fimename//粘滞位

防止root用户创建的东西被普通用户删除,
此情况下可以删除的人有
1.超级管理员删除
2。该目录的所有者删除
3.该文件的所有者删除

权限提升

使用

实现

root修改该文件

补全命令

table

ctrl+c

结束进程
终止当前输入

ctrl + a :

命令行的光标跳转到行首

yum

yum list | grep ”tree“//查看有哪些安装包,可使用管道

安装lrzsz或者xftp

lrzsz :可以支持文件的上传和下载

rz//上传
sz//下载
//此命令不支持文件夹

xftp :文件上传和下载的工具,xshel1是同源

vim

安装vimforcpp(c/c++的一个编辑器)

那个用户下执行那个用户可以使用

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

修改代码风格

其他

编译器:gcc/g++

yum install gcc-c++ libstdc++-devel

1.gcc编译C,g++编译C++
2.编译的4个过程:预处理,编译,汇编,链接,
预处理:
宏替换,头文件展开,删除注释,条件编译

gcc —E [source file] -o [xxx]. i

选项“-E”,该选项的作用是让 gcc在预处理结束后停止编译过程选项
“-o”是指目标文件
“.i”文件为已经过预处理的C原始程序。

编译:将源文件生成为汇编代码

gcc -S test.c/test.i -o test.s

汇编:将汇编代码转化成为二进制代码

gcc -c test.c/test.i/test.s -o test.o

链接:将若千个二进制代码(.o)或者库文件链接起来生成可执行程序或者库文件

//动态编译
gcc test.c -o mytest
//静态编译
gcc test.c -o mytest -static

静态编译的错误
mytest:就是可执行程序的名字

file 名字

文件详细信息

ldd 编译好的c程序

所依赖文件库地址

调试器gdb

下载方式

两种版本

默认release版本
编译debug版本

g++ r.cpp -o r2 -g

调试

gdb m//可执行程序

list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。[重要](l-)向上展示
list/l 函数名:列出某个函数的源代码。
r或run:运行程序。[重要]
n 或 next:单条执行。[重要]
s或step:进入函数调用[重要]
break(b) 行号:在某一行设置断点[重要]
break 函数名:在某个函数开头设置断点
info break (i b):查看断点信息。
finish:执行到当前函数返回,然后挺下来等待命令
print§:打印表达式的值,通过表达式可以修改变量的值或者调用函数
p 变量:打印变量值。[重要]
set var:修改变量的值
continue(或c):从当前位置开始连续而非单步执行程序[重要]
run(或r):从开始连续而非单步执行程序
delete breakpoints:删除所有断点
delete breakpoints n:删除序号为n的断点[重要]
disable breakpoints:禁用断点
enable breakpoints:启用断点
info(或i) breakpoints:参看当前设置了哪些断点
display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
until X行号:跳至X行
breaktrace(或bt):查看各级函数调用及参数【重要】
info(i) locals:查看当前栈帧局部变量的值
quit:退出gdb
!gcc:重复上一次gcc编辑命令

使用场景

1.程序没有执行起来,调试可执行程序(重要的)

2.调试正在运行的程序(gdb attach pid)

3.调成崩溃的程序产生的coredump文件

3.0 coredump 文件、核心转储文位,是程序在崩溃的一瞬间内存的映像〈相当于案发现场)

1 ulimit -a

core file size :决定产生的coredump文件最大能够多大

ulimit -c unlimited

修改coredump政策

如果说我们想要通过gdb + coredump方式调试,可执行程序也应该是 debug版本,

调试命令

gdb +可执行程序+ coredump文件

白动化构建项目:make&makefile

前言

make:是一个命令1
makefile :是一个文件(定义编译程序的规则)
make根据makefile的文件内容,进行解析,编译程序(构建项日)从而生成可执行程序

makefile文件格式

目标对象:生成的内容
依赖对象:源文件
编译命令:如何生成

使用

1.vim 编辑makefile

r:r.cpp  
	g++ r.cpp -o r -g  

第二行tab键
2.

工作方式

make 默认在当前路径下寻找文件名称为“makefile”或者“Makefile”的文件来进行解析,如果找不到,则报错:
2.
只为生成第一个目标对象而服务,
如果生成了目标对象,则后续文件当中的内容不解析
如果为了生成第一个目标对象,需要先生成依赖对象,则在makefile文件当中查找生成依赖对象的方法和具发现以来的对象不存在,报借返回

若依赖对象的最后一次修改时间小于目标对象的最后一次修改时间,则不生成

makefile文件当中的自定义变量和内置变量

内置变量:

$ ^:所有依赖的对象
$ @ :目标对象
$ <:代表第一个依赖对象自定义变量

自定义变量

可以自己给变量起名字,后续使用$符号进行解析

r=r2
$(r):r.cpp
	g++ r.cpp -o $(r) -g

伪目标

伪目标的特性是,总是被执行的。

格式

.PHONY :[伪目标的名称]
伪目标:[依赖对象]
命令
例子:

r=r2

.PHONY:$(r)
$(r):r.cpp
	g++ r.cpp -o $(r) -g

伪目标命令

r=r2

.PHONY:$(r)
$(r):r.cpp
	g++ r.cpp -o $(r) -g
	
.PHONY:clean
clean:
	rm $(r)

以上是关于linux重温bingc(基本yummake)的主要内容,如果未能解决你的问题,请参考以下文章

linux重温bingc(进程)

linux重温bingc(进程)

bingc++模板STL(stringvectorlist)

bingc++模板STL(stringvectorlist)

重温 Webpack, Babel 和 React

bingc++动态内存管理