前言
在Linux编写或者编译C代码的时候,直接使用man命令就可以查看该函数的使用手册,非常方便,如:1
man 3 sleep
但是一般却没有C++的函数手册,怎么把C++的帮助手册也装在机器上呢?
man原理
如果你还不习惯使用man命令或者不清楚man命令的作用,那么建议你先看看这篇《速查手册-man》。
安装C++手册
主要步骤如下:
- 下载手册
- 安装手册
- 使用手册
下载
安装的第一步自然是先下载手册。
可以先进入下面一个镜像网站:1
http://gcc.gnu.org/mirrors.html
进入之后发现有很多站点,随意进入一个,假设进入:1
http://mirror.linux-ia64.org/gnu/gcc
找到libstdc++/doxygen,即可选择下载你需要的手册。注意选择带有man的压缩包,如我选择下载的是:1
libstdc++-api.20140403.man.tar.bz2
安装
所谓安装也不过是将下载好的手册文件解压到指定位置。还记得在《速查手册-man》介绍各个手册的区别吗?由于我们的是库函数手册,因此最好把它放在3处。
于是,我们解压:1
$ tar -xvf libstdc++-api.20140403.man.tar.bz2
解压后的文件会在libstdc++-api.20140403.man下,为了避免和其他的手册文件混在一起,我们重新创建一个目录:1
$ mkdir -p /usr/local/cpp/man #可能需要root权限执行
此时将其拷贝到上面的目录下:1
$ cp -rf ./libstdc++-api.20140403.man/man3 /usr/local/cpp/man/
但是我们发现此时仍然找不到手册:1
2$ man std::cout
No manual entry for std::cout
原因也很简单,这和我们执行普通命令类似(参考《为什么执行》),那我们在哪里添加的呢?
我们可以通过man命令查看man手册的FILES部分:1
2
3
4$ man man
FILES
/etc/man_db.conf
man-db configuration file.
所以对于我的机器来说,我需要在/etc/man_db.conf中添加路径
找到MANDATORY_MANPATH相关行,添加新行:1
MANDATORY_MANPATH /usr/local/cpp/man
这样就可以了。
我们来试一下:1
2$ man std::count
No manual entry for std::count
为什么还是没有呢?,你查看一下/usr/local/cpp/man/man3下的文件都是什么名字就明白了:1
2$ ls /usr/local/cpp/man/man3/* |more
std::iostream.3
原来还要带上命名空间和头文件的名字,例如:1
$ man std::map
然后再使用搜索功能:1
$ /size()
看起来好像也没那么方便啊……
这里说明一下,C++中有命名空间的概念,包括不同的类中可能有相同名称的成员函数,因此直接查看某个函数的手册,也是很难准确找到的。
突然觉得下载一个html或者pdf的手册好像也挺方便的了,可自行体验。
在线手册
在线手册的好处就是,它能比较清晰地看到各个版本的C++相关特性。这里主要推荐两个1
2
3https://en.cppreference.com/ 英文
https://zh.cppreference.com/ 中文
www.cplusplus.com
从中搜索就可以啦。
对于linux命令和C库函数,基本使用man进行查看,但是对于C++,不管你用不用,反正我是用在线的。
当然了,如果你使用chrome浏览器的话,还可以配置一下,地址栏输入C即可直接搜索。
设置方法:
找到设置-管理搜索引擎,添加内容
中文版:1
https://zh.cppreference.com/mwiki/index.php?title=Special:%E6%90%9C%E7%B4%A2&search=%s
英文版:1
https://en.cppreference.com/mwiki/index.php?title=Special:Search&search=%s
添加内容如下图:
如果你已经在这两个网站搜索过,你还可以在其他搜索引擎中看到这样的内容:
这个时候你只需要编辑里面的关键字,设置成自己喜欢的就可以了,如C。
添加之后,在chrome地址栏输入c,按tab键,即可出现:
手边手册
要么就是买一本大头手册《C++标准库》。
当然也可以在公众号【编程珠玑】后台回复【C++标准库】获取电子版,仅供学习交流。
总结
本文旨在引导如何自助安装手册,其步骤也简洁明了:
- 下载手册
- 解压手册
- 放到特定位置
- 让man能够找到