使用 RTags 预处理 C/C++
文章目录
前言
先来看一个动图
我们在使用
C/C++
的时候,或多或少都会碰到宏,不论是自己写的还是别人写的。在使用宏的时候,如果有点复杂那很难看懂,并且非常容易出错,如果能够在编写代码的时候就知道宏展开之后的样子,将会大大提高编码效率,提高正确性。
本篇文章将要介绍在 Emacs
中使用 RTags
来查看宏展开后的样子。
RTags 安装
RTags
是一个 C/S 架构的应用,所以在使用之前要进行安装
后端
macOS
在 macOS
中可以使用 brew
来快速安装,在终端中输入如下指令
|
|
手动安装
在 Linux
稍微麻烦一点,中需要自己编译源码,如下所示
|
|
Emacs
Emacs
中配置也简单,把如下配置拷贝到 Emacs
中
|
|
使用 RTags 为项目建立索引
在使用之前要先启动后端
|
|
后端启动好之后,就可以建立索引了。但是在为项目建立索引之前需要先对项目进行编译生成 compile_commands.json
文件,然后才能使用 RTags
建立索引,如果你使用的是 CMake
则可以使用下面两条指令建立索引。
|
|
除了 CMake
之外还有 ninja
、 Bear
等工具,具体可以查看Usage · Andersbakken/rtags Wiki
宏展开
配置好之后,假设我们想要知道如下代码展开后的代码,只需要在 Emacs
中使用 M-x
执行 rtags-preprocess-file
|
|
得到展开后的代码如下
|
|
总结
本文简单的介绍了在 Emacs
中使用 RTags
进行宏展开,在开发的时候非常方便调试,可以提前帮我们发现代码中的问题。
除了宏展开还有一些其它的功能,比如查看虚函数的调用 rtags-find-virtuals-at-points
等等,更多的可以参考官网。