我使用doxygen和XML文档注释为我们的框架库创建内部API文档.
Doxygen为每个命名空间创建一个"包".我想知道是否有可能在命名空间级别添加源文档以显示在Doxygen的包视图中?
如果我在一个文件中有一个类我无法改变,但我需要在doxygen中记录,最好的方法是什么?我知道最好在实际的.h或.cpp文件中记录,但在这个特定的例子中,这是不可能的.
我已经想出如何记录一些成员,但我不能以可靠的方式记录操作员.让我举个例子.这是一个示例类,其中包含导致问题的成员和一个运行良好的成员:
class Foo
{
public:
int Bar();
bool operator!() const;
};
Run Code Online (Sandbox Code Playgroud)
在其他一些doxygen透视的文件中,我提出了以下内容:
/// @fn Foo::Bar
/// @brief Some info about the constructor
/// @return Some stuff about what bar returns
Run Code Online (Sandbox Code Playgroud)
构造函数的文档有效,但这不符合:
/// @fn Foo::operator!
/// @brief Some info about the operator
/// @return Some stuff about what the operator! returns
Run Code Online (Sandbox Code Playgroud)
也不是:
/// @fn operator!
/// @memberof Foo
/// @brief Some info about the operator
/// @return Some stuff about what the operator! returns
Run Code Online (Sandbox Code Playgroud)
我也尝试用%和%来逃避各个部分.所以它看起来像"/// @fn%operator!","/// @fn operator%!" 或"/// @fn运算符!" …
我正在开发一个跨平台的库.有些代码是依赖于平台的,因此我必须使用它们来#ifdef检查平台类型.我将一个类分成两个类,每个类都用于自己的平台.这些类有不同的名称,但最后我需要typedef根据平台将这些类转换为一种类型:
#ifdef UNIX
/** some comment */
typedef Key_unix Key;
#elif WIN
/** another comment */
typedef Key_win Key;
#endif
Run Code Online (Sandbox Code Playgroud)
生成的文档仅显示typedef包含两个注释的第一个文档.如何将两者展示typedef在一起,每个都有自己的评论?
我在doxygen中使用dot和Graphviz来创建HTML代码的用户手册.doxygen代码看起来有点像这样:
/**<br>
*@addtogroup MainProgram
* @dot
* digraph G {
* Main [label = "Main()"];
* START [label = "Start"];
* FINISH [label = "Finish"];
*
* START -> Main;
* Main -> FINISH;
* }
*
* @enddot
*/
Run Code Online (Sandbox Code Playgroud)
这当然会产生一幅美好的画面.不幸的是,图片没有按照我想要的方式显示在HTML页面中.它始终以页面为中心.我希望对齐位于页面的左侧.生成的HTML代码如下所示:
<div align="center">
<img src="inline_dotgraph_2.dot.gif" alt="inline_dotgraph_2.dot" border="0" usemap="#inline_dotgraph_2.dot.map">
<map name="inline_dotgraph_2.dot.map" id="inline_dotgraph_2.dot.map"></map>
</div>
Run Code Online (Sandbox Code Playgroud)
谁能帮我?这是一个doxygen问题或graphiz/dot问题.我似乎无法找到答案.
谢谢,
莫里斯
我把头发拉过来 - 这可能是两秒钟的修复.
Doxygen创建了非常精彩的HTML文档.
它还将生成TeX输出,根据文档,可以使用make:make pdf在TeX输出文件夹中创建PDF .
它抱怨它丢失了pdflatex.
所以,我安装了MacTeX.
仍然没有运气,pdflatex我的机器上没有安装这样的二进制文件.
我尝试的每次谷歌搜索都会让我失去20年历史的网站,其中包含动画GIF背景,过时的信息,没有人告诉我如何在我的机器上安装pdflatex.
我在这里错过了什么?
编辑:我现在意识到我可以使用TeXShop打开refman.tex文件并自己创建PDF.但我仍然想知道我是否遗漏了pdflatex的内容 - 因为我仍然希望能够自动生成PDF.
作为标题.我刚刚开始使用doxygen,在第一次测试运行中,我注意到创建的PDF已经"由doxygen 1.8.3.1创建",然后是首页上的日期和时间.
可以删除吗?或者甚至只是移动它,说到文档的末尾?
我已经注意到其他类似的问题,但仅针对HTML(或我没有生成的RTF)而不是PDF
我想在Doxygen注释中包含文字HTML元素。像这样:
/// This function skips all <li> elements
Run Code Online (Sandbox Code Playgroud)
如果我这样写,它将<li>被传递到HTML输出,这显然不是我想要的。
相反,我可以这样写:
/// This function skips all <li> elements
Run Code Online (Sandbox Code Playgroud)
在Doxygen生成的HTML中,这可以很好地工作,但是现在源代码本身中的注释非常难以辨认。
因此,看起来我必须在生成的文档或源代码的可读性之间进行选择。
确实是这种情况,还是有办法强迫Doxygen自动将其全部<blabla>转换成<blabla>?
我们有许多makefile模板,通过设置一些参数makefile变量来实现某些构建操作,并通过包含来应用makefile模板
GENERIC_PARAM1-y := paramA
GENERIC_PARAM2-y := paramB
include $(MAKE_TOOLS)/doaction.mk
Run Code Online (Sandbox Code Playgroud)
像doaction.mkcontains 这样的文件生成模板来生成标准规则定义,这些定义仅在包含动作make步骤时应用.
现在我们想要*.mk使用Doxygen 来记录片段的这些接口
## @file
## @brief doaction.mk is purposed to ...
##
## Some more detailed descriptions about rules applied ...
## @param GENERIC_PARAM1-y Parameter1 description ...
## @param GENERIC_PARAM2-y Parameter2 description ...
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以使用任何有效的Doxygen语法/配置来实现这一目的?
短篇小说:我可以用Doxygen生成一个CHM文件.启动CHM文件,我发现内容和索引选项卡确实列出了这些类的页面,名称空间,类和成员.但是,单击"内容"和"索引"列表中的项目不会显示任何内容.
我在使用Windows 7 Professional SP1 64位的计算机上.
我使用Doxywizard在我的代码上运行Doxygen版本1.8.9.1.它正确生成HTML输出; 页面,命名空间,类和成员出现在文档中.
然后我进一步想要将HTML转换为压缩的HTML(CHM)文件.
我htmlhelp.exe从Microsoft网站下载了Microsoft HTML Help Workshop版本1.31(即版本4.74.8703)(https://msdn.microsoft.com/en-us/library/windows/desktop/ms669985 ( v= vs.85 ) .aspx).我运行了安装程序.随着安装程序的进行,出现一条弹出消息:
此计算机已有更新版本的HTML帮助.
但是,安装成功完成.而且,该hhc.exe程序在那里我告诉它安装.
我现在指定这些相关的Doxygen设置:
当我再次运行Doxygen时,它报告错误:
error: failed to run html help compiler on index.hhp
Run Code Online (Sandbox Code Playgroud)
该Foo.chm预期的位置生成的文件.但是,如上所述,它缺少很多内容.
我尝试hhc.exe在Doxygen生成的HHP文件上手动运行.它不表示任何错误.
C:\Program Files (x86)\Microsoft\HTML Help Workshop>hhc c:\test\html\index.hhp
Microsoft HTML Help Compiler 4.74.8702
Compiling c:\test\html\Foo.chm
Compile …Run Code Online (Sandbox Code Playgroud) 我们有以下预处理器宏。它用于帮助Doxygen文档,因为Doxygen在使用C ++和某些模板typedef时遇到了麻烦:
#if defined(DOXYGEN_PROCESSING)
# define DOCUMENTED_TYPEDEF(x, y) class y : public x {};
#else
# define DOCUMENTED_TYPEDEF(x, y) typedef x y;
#endif
Run Code Online (Sandbox Code Playgroud)
如果X是非模板或只有一个模板参数,则效果很好。但是,如果X是具有多个参数的模板:
DOCUMENTED_TYPEDEF(Foo<R,S>,Bar);
Run Code Online (Sandbox Code Playgroud)
然后,由于将字符串拆分为Foo<R和S>,Bar(并且不会生成文档),将导致编译错误。
如何使预处理器宏贪婪?