我能否让Doxygen将@ref解析为C++标准库函数?

11
有时我想在Doxygen注释中引用标准库的结构。我可以使用HTML <a>元素来完成这个目的,但是这种方法需要输入大量文本。我更希望能够简单地编写代码 {@ref std::string},并让Doxygen知道它需要链接到cppreference.org上的std::string页面。 我考虑过为标准库生成一个Doxygen标签文件(如果标签文件不支持任意URL,则可能无法实现)。那么,有没有其他方法可以做到呢?
1个回答

12
你应该拥有一个Doxygen标签文件和对应的离线或在线HTML文件。这样你就可以使用以下格式在Doxygen配置文件中声明它:

您应该拥有一个Doxygen标签文件和相应的离线或在线HTML文件。因此,您可以按照以下格式在Doxygen配置文件中声明它:

TAGFILES = "/location/of/tagFile=http://onlineUrl Or /location/of/OfflineHtml"

要下载这些文件,我找到了以下两个资源:

Cppreference

我推荐使用这种方式,因为文档非常完整。

在线链接

  1. 下载网络标签文件
  2. 在配置文件中设置如下内容:

TAGFILES += "location/of/cppreference-doxygen-web.tag.xml=http://en.cppreference.com/w/"

离线链接

  1. 下载HTML书籍,它是该网站的离线副本。
  2. 在配置文件中设置以下内容:

  3. TAGFILES += "location/of/cppreference-doxygen-local.tag.xml=/location/of/html_book_*\reference\en"
    

更多


GNU 项目

在线链接

  1. 下载最新版本的 tag 文件
  2. 在配置文件中设置以下内容:

TAGFILES = "/location/of/libstdc++.tag = http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen"

离线链接

  1. 下载GCC 7.1标准C++库参考手册(HTML版)。其他版本可在这里找到。
  2. 在配置文件中设置以下内容:

TAGFILES = "/location/of/libstdc++.tag = /location/of/libstdc++-api-html"

更多


你能详细说明一下你所指的标签是什么类型,以及我如何使用它们吗? - einpoklum
这些标签会将我指向在线资源还是本地资源? - einpoklum
@einpoklum,这取决于您的决定是选择“在线链接”还是“离线链接”。请查看[此链接](https://www.stack.nl/~dimitri/doxygen/manual/external.html)了解Doxygen中“标签文件”的含义。 - ahoo
嗨@ahoo,这个解决方案在引用类时(例如@see std::vector)运行良好,但在引用函数时(例如@see std::distance)不起作用。我可以在cppreference标签文件中看到“distance”,但Doxygen无法捕获链接。我应该使用不同的Doxygen语法吗? - user1011113

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