【问题标题】:Where are the man pages for C++? [closed]C++ 的手册页在哪里? [关闭]
【发布时间】:2011-03-14 01:07:11
【问题描述】:

Linux 中是否存在 C++ 文档?我想要 C 的手册页之类的东西。 例如,string、stl、iostream、ifstream 等的文档?

【问题讨论】:

  • 您是否在网上寻找不是的资源?
  • 你可以只搜索“c++ ” 大部分时间这将导致来自 cplusplus.com 的页面
  • 如果他问了一个更具体的问题,我们本可以将他指向 lmgtfy...
  • 就在昨天,我发现自己希望 libstdc++ 提供手册页,而不是强迫我使用网络浏览器来查找文档。
  • 对于其他读者,你可以在你的系统上克隆这个repo然后./configuremake install。它将通过您的man 命令安装来自 cppreference.com 的文档,即。 man std::queue。很方便。

标签: c++ linux documentation manpage


【解决方案1】:

如果您使用 g++ 附带的“普通”libstdc++,其文档可在线获取here

大多数 Linux 发行版都可以将其作为特定软件包离线使用;例如,对于 Debian 派生的发行版,它是 libstdc++-6-<version>-doc(例如,在我的 Ubuntu 机器上,我安装了 libstdc++-6-4.4-doc)。一般来说,文档会放在/usr/share/doc/libstdc++-6-4.4-doc 之类的地方。

这是关于特定于实现的文档;对于与编译器无关的文档,Internet 上的许多站点都提供标准库的参考文档。

现在引用最多的是cppreference.com,它得到了积极的维护,往往非常忠实于标准,并且很好地展示了各种标准版本之间的差异;不过,这对新手来说可能有点吓人。

cplusplus.com 在历史上是最常用的之一(尤其是搜索引擎非常“喜欢”它),但已知包含多个错误或不正确的简化;不知道这几年有没有好转。

此外,the C++ library section on msdn.microsoft.com 近年来在区分 Microsoft 特定细节与标准规定的内容方面做得更好。

最后,如果你想要精确到偏执狂,终极规范文件是the C++ standard,即sold from ISOANSIBSI(价格相当高);然而,有几个草稿是免费的,对于“休闲使用”来说已经足够了。

【讨论】:

  • 谢谢!这是对我的疑问的完美答案......我搜索了很长时间,但我找不到任何这样的答案......
  • IMO 与编译器无关的最佳参考是 en.cppreference.com/w,它非常准确,它显示了任何给定的特性是 C++03 还是 C++11
  • @FabioFracassi 是的,2014 年 11 月,cppreference.com 上的文档的离线版本已添加到 Ubuntu Vivid:apt-get install cppreference-doc-en-html
  • 恕我直言,这也是一个很好的资源github.com/aitjcize/cppman
  • 还有一组可以从 OpenSolaris 复制的 C++ 手册页,但至少可以说是不完整的。
【解决方案2】:

在 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 开头的人条目并将它们发送到vi

===========

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

【讨论】:

  • 似乎不适用于 Ubuntu 12.04。 IE。我安装了这个包,但是你的示例命令没有给出手册页。
  • @Ruslan 我已经更新了我的答案,前缀改为std::而不是std_
  • 在 Ubuntu 16.04 上为我工作,使用 man std::list 语法。
【解决方案3】:

cppman 是一个可用的 C++ 手册页格式化程序 on Github

根据要求,它会从 cplusplus.com 生成联机帮助页,并且非常擅长。不过,您的联机帮助页查看器将是 cppman 而不是 man,而且您仍然需要在线。

【讨论】:

  • 您现在可以缓存所有这些以供离线查看。大约需要 20 分钟。
  • Cppman 有一个选项 (-m true) 可以将其文档导出到 man。
  • 而在installation1installation2之后的离线缓存命令就是cppman -c
【解决方案4】:

安装手册页:

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

【讨论】:

  • 假设您的发行版使用 apt 进行包管理。
  • 为了精确起见,这些不是手册页,而是 HTML 文档(放入 /usr/share/doc/libstdc++4.4-doc)。
【解决方案5】:

C++ 标准库记录在http://www.cplusplus.com/reference/。您的实现可能会带来它自己的文档。例如,来自 GNU Compiler Collection 的 libstdc++ 记录在 http://gcc.gnu.org/onlinedocs/libstdc++/。查看特定库的源代码分发,找出文档是否以及在哪里。

【讨论】:

  • 很遗憾,此时 cplusplus.com 确实已经过时了。
【解决方案6】:

在 Ubuntu 上,http://cppreference.com 的优秀文档的离线副本可在包 cppreference-doc-en-html (HTML) 和 cppreference-doc-en-qch(Qt 帮助格式)中获得。

安装:

sudo apt-get install cppreference-doc-en-html

【讨论】:

  • *截至 2016 年 11 月 24 日不可用。
  • 我在 Ubuntu 中安装了cppreference-doc-en-html,但是应该如何使用呢?执行man fputs 将打开 Linux Programmer's Manual 而不是 cppreference 文档。换句话说,cppreference 文档存储在哪里?
  • @Sergio dpkg -L cppreference-doc-en-html 会告诉你包的内容。
  • @zwets 谢谢!这解决了问题,现在我可以访问文档了。
【解决方案7】:

在 RHEL 6 上,包 libstdc++-docs/usr/share/doc 和手册页中安装文档:

sudo yum install -y libstdc++-docs

现在我可以: man std::string

例如。

【讨论】:

    【解决方案8】:

    您需要密切注意编译器的版本;在最近的 linux 发行版上,您可能使用 g++ v4.3 或 v4.4,但一些较新的 C++0x 功能在 g++ v4.5 中,因此根据您正在使用的功能,您可以运行进入这方面的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 2014-05-24
      • 2016-03-17
      相关资源
      最近更新 更多