如何使用 Doxygen 和 HTML Help Compiler 生成 CHM?

How to generate CHM with Doxygen and HTML Help Compiler?

小故事:我可以用Doxygen生成一个CHM文件。启动 CHM 文件,我发现目录和索引选项卡确实列出了页面、命名空间、类 和这些 类 的成员。但是,单击这些目录和索引列表中的项目不会显示任何内容。

我在计算机上使用 Windows 7 Professional SP1,64 位。

我在代码中使用 Doxywizard 运行 Doxygen 版本 1.8.9.1。它正确地生成了 HTML 输出;页面、命名空间、类 和成员出现在文档中。

然后我还想将 HTML 转换成压缩的 HTML (CHM) 文件。

我从 Microsoft 网站 (https://msdn.microsoft.com/en-us/library/windows/desktop/ms669985(v=vs.85).aspx) 下载了 Microsoft HTML Help Workshop 1.31 版(即 htmlhelp.exe 4.74.8703 版)。我 运行 安装程序。随着安装程序的进行,弹出消息出现:

This computer already has a newer version of HTML Help.

但是,安装成功完成。而且,hhc.exe 程序就在我告诉它安装的地方。

我现在指定这些相关的 Doxygen 设置:

当我再次运行 Doxygen时,报错:

error: failed to run html help compiler on index.hhp

Foo.chm 文件按预期生成。但是,如上所述,它缺少很多内容。

我在 Doxygen 生成的 HHP 文件上手动尝试了 运行ning hhc.exe。它不表示任何错误。

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 time: 0 minutes, 3 seconds
292     Topics
3,855   Local links
83      Internet links
0       Graphics

Created c:\test\html\Foo.chm, 259,580 bytes
Compression decreased file by 1,077,915 bytes.

但是,结果是一样的:Foo.chm 文件缺少内容。

我随后发现我的计算机上安装了另一个 HTML Help Workshop。但是,hhc.exe 是完全相同的版本。所以,这不太可能是问题所在。

你能建议我还可以尝试让所有文档内容显示在 CHM 文件中吗?

在您的 doxyfile 中,将 hhc.exe 的路径用双引号括起来,因为它包含空格。

或者更好的是,不要使用带空格的路径。

当我看到这个问题时(html 存在并且 chm 有内容但该内容不可见),这是因为 windows 安全性有 "blocked" chm文件。要查看这是否是您遇到的问题,请尝试以下操作:

  1. 在 windows 资源管理器中,右键单击生成的 .chm 文件和 select 属性。
  2. 在“常规”选项卡上,如果您看到“取消阻止”按钮,请单击它。
  3. 关闭对话框并打开.chm 文件。

(我没有遇到本地生成的 doxygen .chm 文件的这个问题,但我希望根据你的描述这可以解决你的问题。)

主要问题是 CHM 文件位于映射的网络驱动器上。

当我将 CHM 文件复制到计算机上的物理驱动器时,显示所有内容。