C++的man手册在哪里?

92

在Linux中是否存在C++文档?我需要像C man页面一样的东西。例如,string、stl、iostream、ifstream等的文档?


6
你是否在寻找一种不在互联网上的资源? - Greg Hewgill
1
你可以直接搜索“c++ <你想了解的特性>”,大多数情况下这将会导向 cplusplus.com 的页面。 - flight
17
就在昨天,我发现自己希望libstdc++提供man页,而不是强迫我使用Web浏览器查找文档。 - sarnold
2
对于上面的评论者们,你们是否曾经在一个无法访问互联网的地方进行开发工作?想象一下,你唯一的访问方式是步行25到75步,使用其他人整天都在使用的共享机器。而这是你唯一可以访问互联网的地方。没有WiFi或手机可用。网络也无法进行任何修改。 - Pulseczar
10
对于其他读者,您可以克隆此代码库,然后在您的系统上运行./configuremake install。这将安装来自cppreference.com的文档,并可通过您的man命令访问,例如man std::queue,非常方便。 - haxpor
显示剩余2条评论
8个回答

70

如果您使用与g++捆绑的“普通”libstdc++,则其在线文档可在此处访问

对于大多数Linux发行版,也可以将其作为特定软件包脱机提供;例如,对于Debian派生的发行版,它是libstdc++-6-<version>-doc(例如,在我的Ubuntu机器上,我已安装libstdc++-6-4.4-doc)。通常,文档将被放置在类似于/usr/share/doc/libstdc++-6-4.4-doc的位置。

这是关于实现特定文档的说明;对于与编译器无关的文档,许多互联网站点提供标准库的参考文档。

现在最常被引用的是cppreference.com,它得到了积极的维护,往往非常忠实于标准,并显示了各种标准版本之间的差异;但对新手来说可能有些令人生畏。

cplusplus.com历史上是最常用的之一(尤其是因为它非常受搜索引擎的欢迎),但众所周知包含了几个错误或不正确的简化;我不知道它在最近几年里有没有得到改善。

此外,在最近几年中,msdn.microsoft.com上的C++库部分在将Microsoft特定详细信息与标准规定分开方面有很大改进。

如果你需要极高的精确度,最终权威文件是C++标准,该标准由ISO、ANSIBSI销售(价格相当高);然而,有多份草案可供免费使用,对于“非正式使用”来说已经足够好。


1
谢谢!这是我疑惑的完美答案……我已经寻找很长时间了,但找不到像这样的答案…… - fpointbin
24
在我看来,最好的与编译器无关的参考资料是http://en.cppreference.com/w/。它大多数情况下都很准确,并且显示任何给定特性是C++03还是C++11。 - Fabio Fracassi
7
@FabioFracassi 是的,2014年11月,cppreference.com的离线文档版本被添加到Ubuntu Vivid中:apt-get install cppreference-doc-en-html - zwets
1
我个人认为这也是一个很好的资源 https://github.com/aitjcize/cppman - Calamar
还有一组C++手册页面可以从OpenSolaris复制,但至少可以说它们是不完整的。 - Throw Away Account

42

在Ubuntu中安装了libstdc++-6-x.x-doc后,可以通过man命令获取这些文档的信息,例如(libstdc++-4.8-doc)

man std::list
man std::weak_ptr
man std::ios_base

要获取这些条目的列表,请使用

apropos -r '^std' | vi -

这个命令获取所有以std开头的man条目,并将它们发送到vi

==========

更新:从libstdc++-4.8-doc开始,前缀改为std::而不是std_


似乎在Ubuntu 12.04中无法工作。即我安装了这个软件包,但您的示例命令没有提供手册页。 - Ruslan
1
@Ruslan 我已经更新了我的答案,前缀更改为std::而不是std_ - don't panic
在我的Ubuntu 16.04上运行良好,使用man std::list语法。 - BeeOnRope

14

cppman是一个C++手册格式化程序,可在Github上获取。

当请求时,它会从cplusplus.com生成man手册页,并且它做得非常好。您的man手册查看器将是cppman而不是man,但仍需要在线。


3
现在你可以缓存它们以供离线查看。大约需要20分钟。 - Dilawar
Cppman有一个选项(-m true),可以将其文档导出到man。 - John P
1
而离线缓存的命令,在 安装1安装2 之后,只需使用 cppman -c 即可。 - Loves Probability

8

安装man手册:

$ sudo apt-get install libstdc++6-4.4-doc

假设您的发行版使用apt进行软件包管理。 - Sam Miller
6
为了准确起见,这些不是 manpages,而是 HTML 文档(放置在 /usr/share/doc/libstdc++4.4-doc 中)。 - Matteo Italia

6

不幸的是,目前cplusplus.com已经非常过时了。 - tommsch

4

1
截至2016年11月24日,尚不可用。 - silent_dev
2
我在Ubuntu中安装了cppreference-doc-en-html,但是我该如何使用它?执行man fputs将打开Linux程序员手册而不是cppreference文档。换句话说,cppreference文档存储在哪里? - builder-7000
2
@Sergio dpkg -L cppreference-doc-en-html 命令会告诉你该软件包的内容。 - zwets
@zwets 谢谢!问题已解决,现在我可以访问文档了。 - builder-7000
在Linux中,你如何访问它们? - cassepipe

2
在RHEL 6上,包libstdc++-docs安装在/usr/share/doc和man页面中的文档: sudo yum install -y libstdc++-docs 现在我可以使用man std::string查看文档。
例如。

1
你需要密切关注编译器的版本;在最近的Linux发行版中,你可能正在使用g++ v4.3或v4.4,但一些较新的C++0x特性在g++ v4.5中,因此根据你所使用的功能,你可能会遇到问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接