今天跟大家聊聊我这几天折腾的 SourceNavigator,这玩意儿有点老,但用来啃老代码,那是真香!
我寻思着找个趁手的代码阅读工具,Source Insight 啥的都用腻,想换个口味。 搜一圈,发现 SourceNavigator,看着挺古老的,但评价还行,就决定试试。
上网搜一下,找到 SourceForge 上面的 SourceNavigator NG 项目,直接下最新的包,我下的是 `sourcenav-6.*`。 这玩意儿是源码包,得自己编译。
下载完,我直接 `tar zxvf sourcenav-6.*` 给解压。 解压完,进到解压出来的目录里。 按照惯例,先看看有没有 `README` 或者 `INSTALL` 文件,果不其然,找到 `INSTALL`,打开瞅瞅。
`INSTALL` 文件里推荐的配置参数是 `--prefix=/opt/sourcenav`, 意思是把软件装到 `/opt/sourcenav` 目录下。 为不污染系统环境,我一般都喜欢装到 `/opt` 下面。
然后就开始配置,执行 `./configure --prefix=/opt/sourcenav`。 结果,configure 脚本报错,提示缺少 `libx11-dev`。 这玩意儿是 X Window 系统的开发库,估计 SourceNavigator 依赖它。
解决办法很简单,直接 `sudo apt-get install libx11-dev` 安装一下就行。 装完之后,再重新执行 `./configure --prefix=/opt/sourcenav`, 这回就没问题,顺利通过。
接下来就是编译,直接 `make` 命令。 编译过程有点长,慢慢等。 编译完,就是安装,`sudo make install`。 安装完,SourceNavigator 就装到 `/opt/sourcenav` 目录下。
装好之后,我到 `/opt/sourcenav/bin` 目录下,找到 `snavigator` 这个可执行文件。 运行一下,`./snavigator`, 结果又报错,提示找不到共享库。
这应该是环境变量的问题。 我打开 `~/.bashrc` 文件,在面加上一行: `export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sourcenav/lib`。 这意思是把 SourceNavigator 的库目录添加到共享库搜索路径里。
保存 `~/.bashrc` 文件,然后 `source ~/.bashrc` 让环境变量生效。 再运行 `./snavigator`, 这回终于没问题,SourceNavigator 顺利启动!
打开 SourceNavigator,第一件事就是创建一个项目。 选择 "File" -> "New Project", 填上项目名,选择代码目录,然后一路下一步就行。 SourceNavigator 会自动分析代码,建立索引。
等索引建立完成,就可以愉快地阅读代码。 SourceNavigator 的功能挺全的,可以查找函数定义、变量引用、类继承关系等等。 虽然界面有点老,但功能还是很强大的。
这几天用下来,感觉 SourceNavigator 确实是个不错的代码阅读工具,尤其适合阅读大型的 C/C++ 项目。 虽然安装过程有点折腾,但装好之后就省心。
这回折腾 SourceNavigator 的过程还算顺利。 虽然遇到一些问题,但都顺利解决。 希望我的经验能帮到大家,也欢迎大家分享自己的使用心得。