我正在编写一个库(使用 libtools),其中所有 API 文档都是使用 doxygen 完成的。
我想知道是否有一种简单的方法可以将生成的 doxygen 文档的安装集成到 autotools 中。
我认为构建文档应该很容易。但是一旦我运行 doxygen,将生成的(例如).html 文件放入 $(htmldir) 的正确方法是什么?
问题似乎是我不知道(我也不想知道)doxygen 将为我创建哪些文件,所以我无法真正将它们全部枚举到 html_DATA 中
我认为像“html_DATA=html/*.*”这样的东西是个坏主意
我只是尝试设置我的 Doxfile 来生成图表,但我得到:
Problems running dot: exit code=127, command='dot',
arguments='"/MyProject/extras/doc/target/html/_c_c_blade_8cpp__incl.dot" -Tpng -o
"/MyProject/extras/doc/target/html/_c_c_blade_8cpp__incl.png"'
finished...
*** Doxygen has finished
Run Code Online (Sandbox Code Playgroud)
并且没有生成任何图表。这是怎么回事?
我正在使用 doxygen 为我们的 C++ API 生成 html 帮助。
有些部分在代码中启用/禁用,例如
#ifdef EXPERIMENTAL_FEATURE1
class Experimental1
{
...
}
#endif
#ifdef EXPERIMENTAL_FEATURE2
class Experimental2
{
...
}
#endif
Run Code Online (Sandbox Code Playgroud)
我将 doxygen PREDEFINED 设置如下:
预定义 = 实验功能 1 实验功能 2
然而,这不会导致 doxygen 提取文档。对于这些课程。日志显示 doxygen 读取了文件。
PREDEFINED 的语法是否正确(用空格分隔且不带 =)?
我该如何调试这个?
我想要获取 llvm 的 doxygen 网页的副本,这样我就可以在没有互联网的情况下使用它。我做了如下:
$ cd LLVM_ROOT_DIR
$ mkdir out
$ cd out/
$ ../configure --enable-doxygen
$ make ENABLE_OPTIMIZED=1
Run Code Online (Sandbox Code Playgroud)
但它只构建了llvm,没有文档。我也尝试过
$ make BUILD_FOR_WEBSITE=1 ENABLE_OPTIMIZED=1
Run Code Online (Sandbox Code Playgroud)
和
$ make ENABLE_OPTIMIZED=1 EXTRA_DIST=1
Run Code Online (Sandbox Code Playgroud)
所有这些都不起作用。我如何构建网页?多谢。
我正在使用 doxygen 为程序生成文档。现在我想链接另一个网站/程序中生成的文档(完全独立)。
我的想法是生成一个与 doxygen 生成的 URL 相同的 URL,例如我的类名是Models.PMF.Phen.GenericPhase,doxygen 生成的 url 是class_models_1_1_p_m_f_1_1_phen_1_1_generic_phase.html。我不明白为什么url中有这么多underscoreand 。1
我的问题是
class/Models/PMF/Phen/GenericPhase.html?感谢您的任何建议。如果我的问题不清楚,请告诉我。
我有一个简单的递归模板,它实现了欧几里得算法(的优化版本)。Doxygen 对此抱怨道:
/usr/home/kamikaze/stark/Yggdrasil/src/units/Units.hpp:335: warning: Detected potential recursive class relation between class units::euclid and base class units::euclid< Rhs, Lhs%Rhs >!
/usr/home/kamikaze/stark/Yggdrasil/src/units/Units.hpp:335: warning: Detected potential recursive class relation between class units::euclid and base class euclid< Rhs, Lhs%Rhs >!
/usr/home/kamikaze/stark/Yggdrasil/src/units/Units.hpp:335: warning: Detected potential recursive class relation between class units::euclid and base class units::euclid< Rhs, Lhs%Rhs >!
/usr/home/kamikaze/stark/Yggdrasil/src/units/Units.hpp:335: warning: Detected potential recursive class relation between class units::euclid and base class euclid< Rhs, Lhs%Rhs >!
Run Code Online (Sandbox Code Playgroud)
我很惊讶为什么这是一个投诉/警告。我认为递归类型是常见且合法的。它也是众多递归模板之一,但也是 doxygen 唯一抱怨的一个。令我惊讶的是,我只发现 doxygen 错误检测递归的类似问题。
如果您有兴趣,这里是代码:
/**
* Implements Euclid's …Run Code Online (Sandbox Code Playgroud) 我编写了一个库,它使用另一个第三方库。该第三方库在特定网站上在线提供。我已成功使用 DoxyGen 来记录我的项目,但 I\xe2\x80\x99m 很难让它生成指向第 3 方在线文档的链接。
\n\n我发现我可以为文件中的这些类创建 \xe2\x80\x9cdummy\xe2\x80\x9d 条目,并为它们生成页面,这些页面有指向在线文档的链接。这样做的缺点是,我被迫在我的文档上有一个页面,该页面只是一个链接。理想情况下,单击第 3 方类应将用户直接带到在线文档,而不是让用户浏览 \xe2\x80\x9cdo-nothing-but-link\xe2\x80\x9d 页面。
\n\n我尝试为此使用外部标记文件,但是当 doxygen 运行时不断出现错误,并且标记的类在输出中仍然不是链接。我还没有找到任何使用手动创建的标记文件来引用在线文档的示例,但根据 doxygen 指令的措辞,这似乎应该是可行的。\n我当前的标记文件目前看起来像这样(尽管我已经尝试了相当多的操作)一些变化):\nExternalTags.xml
\n\n<?xml version="1.0" encoding="UTF-8" standalone="true"?>\n<tagfile>\n<compound kind="class">\n<name>Vector3</name>\n<filename>Vector3.html</filename>\n</compound>\n</tagfile>\nRun Code Online (Sandbox Code Playgroud)\n\n我的配置文件包含以下行(也尝试了很多变体):
\n\nTAGFILES = "externalTags.xml = http://docs.unity3d.com/ScriptReference/"\nRun Code Online (Sandbox Code Playgroud)\n\n当标记文件从配置中删除时,doxygen 运行时不会出现任何错误。包含标记文件选项后,doxygen 总是生成以下错误:
\n\nlookup cache used 941/65536 hits=6682 misses=1048\nfinished...\nerror: Fatal error at line 1 column 1: error while parsing element\nerror: Fatal error at line 1 column 1: error while parsing prolog\nRun Code Online (Sandbox Code Playgroud)\n\n如何解决这些错误,并在 doxygen 输出中正确生成链接?
\n我使用的 doxygen 设置非常适合类、结构和命名空间,但不会为独立函数生成任何文档。
例如,这些方法不会生成任何内容:
#ifndef STRING_UTILS_H
#define STRING_UTILS_H 1
/// @file
/// @brief Trim whitespace from the start of the string
/// @param s - The string to left trim
/// @return the trimmed string
std::string ltrim(const std::string& s);
/// @brief Trim whitespace from the end of the string
/// @param s - The string to right trim
/// @return the trimmed string
std::string rtrim(const std::string& s);
/// @brief Trim whitespace from both sides of the string
/// @param s …Run Code Online (Sandbox Code Playgroud)