Linux之vim编辑器和gcc,gdb

xiaoxiao2021-02-28  112

1.vim编辑器 1. 新增: a 从光标后面开始添加文本 A 从光标所在行的末尾开始添加文本 插入: i 从光标前面开始插入文本 I 从光标所在行的开始处插入文本 删除与修改: x 删除光标处的字符 dd 删除光标所在的整行 3dd 删除光标所在行以及下面的两行 D 删除光标到行尾的文本, 常用语删除注释语句 (d$) 光标移动: ^ 光标移动到行首 $ 光标移动到行尾 Ctrl+d 向下翻半页 Ctrl+f 向下翻一页 Ctrl+u 向上翻半页 Ctrl+b 向上翻一页 gg 光标定位到文档头 G 光标定位到文档尾 H 光标定位到当前页首 L 光标定位到当前页的最后一行的行首 w 光标往后移一个字 b 光标往前移一个字 [n]+ 光标向后移动 n 行,[n]表示一个整数 10+ [n]- 光标向前移动 n 行,[n]表示一个整数 10- [n]G 光标定位到第 n 行行首, [n]表示一个整数 20G(:100--定位到第100行) 查找与替换: /[str] 查找字符串 str, [str]表示要查找的字符串 回车后会加亮显示所有找到的字符串, 接着 命令 n 移动到下一个找到的字符串, 命令 N 移动到 上一个找到的字符串 eg /hello 光标在行首 1ctrl+v--进入可视化 2选中行数 3按L 4按空格 5按esc 竖着选中一列或几列 2.gcc编译 1.gcc 编译过程: 预编译 编译 汇编 链接 预处理 -E -o  gcc –E test.c -o test.i 编译 -S -o gcc -S test.i –o test.s 汇编 as -o as test.s -o test.o 链接 gcc –o test test.o 3.函数库分为静态库和动态库 静态库 .a (静态库会直接拷贝到执行的二进制文件中) gcc -c add.c ar crsv libadd.a add.o gcc -o main main.c -ladd 动态库 .so (程序运行时才会载入)--(共享库) -fPIC 生成使用相对地址的位置无关的目标代码 gcc -c add.c gcc -shared -o libadd.so add.o 注册动态库的路径 sudo cp lib*.so /usr/lib gcc -o main main.c -ladd gcc -Wall //列出所有的警告信息 gcc -Werror //把所有的警告信息转化为错误信息 调试的时候不要使用优化选项 4.程序调试gdb gcc -o main main.c -g gdb main //进入调试 l //显示代码 b 4 //在第四行设置断点 r //运行 s //进入函数执行 n //一步一步执行 finish //跳出函数 c //运行到最后 p //打印变量 q //退出 info b //查看所设置的断点 tb 4 //在第四行设置临时断点,到达后自动删除 disable //停止指定的断点 enable //激活指定的断点 命令 x 是用来检查内存情况,英文是 examine 含义  使用方法 x /20xb 变量首地址,其中20x代表16 进制的长度,b 代表字节的含义 段错误:  ulimit -c unlimited 设置 core file size 为不限制大小 设置完毕后,可以通过  ulimit -a 进行查看是否设置 ok,  这时候再次运行程序,会产生 core 文件,通过 gdb 可执行程序 core 文件进行调试 5.make工程管理器 1 main:main.o add.o 2     gcc -o main main.o add.o 变量、函数与规则 //多个.c文件时使用SOURCES SOURCES:=$(wildcard *.c) OBJS:=$(patsubst %.c,%.o,$(SOURCES)) ELF:=main CC:=gcc CFLAGS:=-g $(ELF):$(OBJS)         gcc $^ -o $@  //自动变量:指在使用的时候,自动用特定的值替换 .PHONY:clean  //表示它后面列表中的目标均为伪目标(清理文件) clean:         rm -rf $(OBJS) $(ELF) #make //直接 make,即从默认文件名( Makefile) 的第一行开始执行 #make clean //表示执行 clean: 开始的命令段 $@ 当前规则的目标文件 $^ 当前规则的所有依赖文件, 以空格分隔 普通规则, 隐含规则, 模式规则

隐含规则: //*.o 文件自动依赖*.c 或*.cc 文件, 所以可以省略

转载请注明原文地址: https://www.6miu.com/read-61111.html

最新回复(0)