Mengzelev's Blog

做pa的时候可能会用到的操作

Word count: 916 / Reading time: 3 min
2018/10/04 Share

当做笔记随便写写的,希望能帮到一些人吧。毕竟作为一名优秀的bug maker,别人遇到的问题我基本都能遇到的。

vim和tmux另外写了教程:

vim初探

使用tmux变身炫酷程序猿(x

持续更新中
最后更新:

2018/10/04 17:18:29 新增PA2时运行dummy出错的解决方式

语言规范


这名字很中二…但其实就是个人写文章的时候一点习惯用的表示,和别人的可能不一样,很可能非常不标准,注意区分就好

  • []方括号表示需要自定义的内容,括起来的只是你应该输入的东西的名字
  • $开头的表示在命令行中键入的代码,否则为文件中的代码

在整个目录下查找代码


在某个文件里看到某个函数或者宏或者变量的定义的时候经常会好奇在哪里、怎么使用过,除了用/+(搜索内容)靠vim的功能在文件内搜索外,还可以

$ grep "搜索内容" -r <目录>

e.g.

$ grep "CPU_state" -r .

其中-r表示递归搜索,可以搜索整个目录下所有的文件

一键跳转定义处


创建接口的时候经常需要查看某些函数、宏、结构体的定义,于是被某位nb的学长安利了ctags神器,可以一键跳转至定义处并一键调回,先贴上自己查到的教程

首先需要安装ctags,一般来说直接apt就好了,但是莫名不行,可能是镜像源的问题

$ sudo apt install ctags

于是我选择了从ctags官网手动下载ctags-5.8.tar.gz

如果是在host里下载的,下载后通过自己的共享方式扔到虚拟机里面,进行解压缩

$ cd [压缩包所在目录]
$ tar jxvf [文件名].tar.bz

解压后手动安装

$ cd ctags-5.8
$ ./configure
$ make
$ make install

安装完成后测试一下是否安装成功

$ whereis ctags

你应该能看到让你觉得成功的提示信息。

安装成功后,为源码生成tags文件,在需要使用ctags的目录下(所有子目录都可以享受到)运行

$ ctags -R

为了使得字段补全有效,在生成tags时需要一些额外的参数,推荐的c语言(c处可以替换成其他语言)参数主要是:

$ ctags -R --c-kinds=+px --fields=+iaS --extra=+q

其中,fileds 用于指定每条标记的扩展字段域,extra 选项用于增加额外的条目,f表示每个文件增加一个条目,q为每个类增加一个条目

之后配置vim,就不用每次都手动设置

$ vim ~/.vimrc

在.vimrc 中加入如下内容

set tags=[path]/tags
set tags=./tags,tags;$HOME

第二行我暂时也不知道是干什么的,但是不加上去好像用不起来(小声

然后用vim编辑你需要的代码文件,当光标落到你想查询定义的函数上时使用Ctrl + ]跳转到定义处(其实明明是两键跳转对不对),然后Ctrl + o或者Ctrl + t返回跳转前的位置。

参考教程原地址

编译dummy时出错

进行到PA2开始时,试图编译dummy会产生如下的报错:



这时候如果STFW得到的答案应该是安装libc6-dev-i386

$ sudo apt-get install libc6-dev-i386

然而我装了之后还是报错,到stackoverflow上稍微刨了一下发现可能还需要安装gcc-multilib

$ sudo apt-get install gcc-multilib

然后可以开始愉快的PA2了



stackoverflow原回答地址

CATALOG
  1. 1. 语言规范
  2. 2. 在整个目录下查找代码
  3. 3. 一键跳转定义处
  4. 4. 编译dummy时出错