如何使用Doxygen和HTML帮助编译器生成CHM?

时间:2015-06-03 20:13:32

标签: c++ doxygen chm doxygen-wizard html-help-workshop

短篇小说:我可以用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)。我运行了安装程序。随着安装程序的进行,出现了一条弹出消息:

  

此计算机已有更新版本的HTML帮助。

但是,安装成功完成。并且,我告诉它安装hhc.exe程序。

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

  • 向导 - >输出:
    • 检查HTML
    • “准备压缩HTML(.chm)”选项已选中。
  • 专家 - > HTML:
    • GENERATE_HTMLHELP = YES
    • CHM_FILE = Foo.chm
    • HHC_LOCATION = C:\ Program Files(x86)\ Microsoft \ HTML Help Workshop \ hhc.exe

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

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

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

我尝试在Doxygen生成的HHP文件上手动运行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文件中?

3 个答案:

答案 0 :(得分:5)

当我看到这个问题时(html存在并且chm有内容但内容不可见),这是因为Windows安全已经“阻止”了chm文件。要查看这是否是您遇到的问题,请尝试以下方法:

  1. 从Windows资源管理器中,右键单击生成的.chm文件并选择属性。
  2. 在“常规”选项卡上,如果看到“取消阻止”按钮,请单击它。
  3. 关闭对话框并打开.chm文件。
  4. (我没有在本地生成的doxygen .chm文件中遇到此问题,但我希望您的描述可以解决您的问题。)

答案 1 :(得分:2)

在你的doxyfile中,将hhc.exe的路径放在双引号中,因为它包含空格。

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

答案 2 :(得分:2)

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

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