前言

使用 RTags 预处理 C/C++这篇文章中提到了 rtags 的使用,于是我在 Linux 中使用的时候碰到了安装的问题并顺利解决了。

然后又在 Mac 上进行了尝试,也碰到了问题,记录一下,希望能帮助需要的人。

Mac

使用 homebrew

1
brew install rtags

使用 homebrew 安装非常简单,但是它会依赖 emacs ,所以会安装一下 emacs ,而我通常会安装别的版本,所以就不想要,这下就只能通过源码编译了。

源码安装

直接使用CMAKE编译会报如下错误

1
C++11 support not detected. rct requires a modern compiler, GCC >= 4.8 or Clang >= 3.2

正确安装方法

1
2
3
4
5
6
7
brew install llvm
export PATH=/usr/local/opt/llvm/bin:$PATH
git clone --recursive https://github.com/Andersbakken/rtags.git
cd rtags
mkdir build && cd build
CC=clang CXX=clang++ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=on ..
make

编译完了就会在 build 目录下的 bin 目录中有 rcrdmrp ,你可以把它加入到环境变量中,也可以使用 make install 进行安装。

Linux(Manjaro)

Manjaro 中没有直接安装的包,所以也要通过源码进行编译

直接使用CMAKE编译会报如下错误

1
error: no member named 'numeric_limits' in namespace 'std'

正确安装方法

1
2
3
4
5
6
7
git clone --recursive https://github.com/Andersbakken/rtags.git
cd rtags
mkdir build && cd build
export GCC_VERSION=11.1.0 # 需要根据你的版本修改,可以使用 g++ --version 查看
export CXXFLAGS="-include /usr/include/c++/${GCC_VERSION}/limits"
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=on ..
make

编译完了同样会在 build 目录下的 bin 目录中有 rcrdmrp ,你可以把它加入到环境变量中,也可以使用 make install 进行安装。

参考