Linux之vim编辑器和gcc,gdb

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 文件, 所以可以省略



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值