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)的主要内容,如果未能解决你的问题,请参考以下文章
bingc++模板STL(stringvectorlist)