从具有以“。”开头的父文件夹的文件夹运行时,Doxygen无法运行html帮助编译器,hhc.exe错误HHC5010。

我正在Windows上使用Conan软件包管理器来创建软件包。创建包的柯南命令将文件复制到%USERPROFILE%\.conan(或C:\Users\xxxxxxx\.conan)内的文件夹中。然后,从该位置构建一个Visual Studio项目,并最终在构建后命令中调用doxygen.exe以创建.chm帮助文件。 doxygen命令失败,并显示以下信息:

  

错误:无法在index.hhp上运行html帮助编译器

进一步的调查显示,由doxygen执行的hhc.exe命令失败:

C:\Users\xxxxxxx\.conan\data\Module\1.0.0\user\channel\build\524dc97e4a3dd1f774ea3897f9e4faf26c5457d2\Documentation>"C:/Program Files (x86)/HTML Help Workshop/hhc.exe" html\index.hhp
  

HHC5010:错误:无法打开“ C:\ Users \ xxxxxxx \ data \ Module \ 1.0.0 \ user \ channel \ build \ 524dc97e4a3dd1f774ea3897f9e4faf26c5457d2 \ Documentation \ html \ Module.chm”。编译停止。

仔细检查发现错误消息中缺少 “。conan”文件夹 。果然,我确认当index.hpp驻留在具有以“。”开头的父文件夹的文件夹中时,hhc.exe失败。

尝试解决此问题:

  • 将Doxyfile设置 OUTPUT_DIRECTORY 更改为“ $(TMP)/ Doxygenmodule”可解决该错误,但在另一个我不希望的位置创建.chm文件。
  • 导航到“ .conan”文件夹的8DOT3名称(即“ CONAN〜1”)以运行hhc.exe命令成功完成,但是很遗憾,我无法让柯南使用此8DOT3路径进行创建包装。例如。 C:\Users\xxxxxxx\CONAN~1\...

我可以使用%TMP%文件夹,但希望在当前文件夹中生成.chm。有人有什么想法吗?

HTML帮助研讨会v1.31已安装在我的计算机上的C:\Program Files (x86)\HTML Help Workshop上,可能是通过Visual Studio安装(不确定)安装的。我也尝试使用从microsoft网站(v1.30)下载的版本,没有任何区别。

其他信息:柯南版本1.18.0,Doxygen版本1.8.14,Windows 10版本1809

wang532948001 回答:从具有以“。”开头的父文件夹的文件夹运行时,Doxygen无法运行html帮助编译器,hhc.exe错误HHC5010。

很遗憾,这不是解决方案,但这是hhc.exe中的已知限制,请参阅:https://social.msdn.microsoft.com/Forums/en-US/0681145c-223b-498c-b7bf-be83209cbf4e/issue-with-html-workshop-in-a-windows-container?forum=visualstudiogeneral

  

HTML帮助1.x命令行编译器hhc.exe无法将CHM文件编译到其完整路径包含以点开头的文件夹名称的文件夹。如果您有此问题,则可能要使用以点开头的文件夹指定输出路径,例如“ d:\ My files.NET \ documentation”。您可以在文件夹名称中使用点,但不能在开头使用。

编辑2019-11-15 : 我刚刚将一个建议的补丁推送到github(拉请求7402,https://github.com/doxygen/doxygen/pull/7402)。 提议的修补程序将doxygen内部的内容从当前目录更改为简称为当前目录,但仅用于HTML帮助编译。

编辑2019-11-16 : 代码已集成在github的主版本中。

,

这也不是答案。实际上,您自己找到了答案和解决方法。

  

使用OUTPUT_DIRECTORY指定不包含以句点开头的文件夹名称的目录。

您描述的错误是MS HTML帮助编译器的一个已知问题。更一般而言,HTML Help编译器不喜欢某些文件夹和文件名。尝试并坚持使用这些字符_,a..z,A..Z,0..9。请勿不要使用这些符号,尤其是 . - #

请注意,专有的CHM文件格式大约使用20年(Windows 95,...)。 HTML帮助处于维护模式,这意味着运行时或编译器均不需要任何新功能和错误修复。 HH的所有主流开发都已停止。

如果上面的目录名称以句点开头,则无法避免此错误。即使Doxygen仅编写了必要的文件,并且index.hhp的编译是通过第三方工具(例如FAR HTML)使用包含.conan的路径来完成的。这是因为所有应用程序都在使用错误的HHA.dll

以上内容当然适用于您描述的整个工作流程。也许你可以打断它。

    可以将
  • Doxygen配置为不调用HTMLHelp编译器。只需取消选中GENERATE_HTMLHELP选项(DoxyWizard:专家>主题> HTML )。 Doxygen生成的所有文件都位于您的首选输出目录中-但当然没有CHM文件。可以稍后导入,例如由HelpNDoc编写,并在另一个位置编译为CHM文件。

  • 如果您可以中断工作流程并且还可以更改Doxygen的设置,则将OUTPUT_DIRECTORY的首选项设置为例如。 C:/CacheMenu/CONAN~1/DOXYGE~1也可以按预期工作(此处用作测试用例)。

无论您做什么,此阶段的解决方法以及从外部其他目录复制和粘贴都是一种快速的解决方案。请注意@albert答案中的EDIT。

本文链接:https://www.f2er.com/3100728.html

大家都在问