【问题标题】:Cannot generate Doxygen diagram无法生成 Doxygen 图
【发布时间】:2015-02-24 18:43:29
【问题描述】:

我正在尝试使用外部Mscgen 实用程序绘制与Doxygen 的交互图。

这是源文件:

/// test.h

/** Interaction diagram.
 * Test.
 *  \msc "Test interaction diagram"
 *      A,B,C;
 *      B->C;
 *      A<-B;
 *  \endmsc
*/

class A {};

class B {};

class C {};

我安装了mscgen.exe 可执行文件,并在环境变量中设置了它的路径。

运行 Doxygen 时,我从它的日志中得到与交互图相关的所有信息:“正在搜索 msc 文件...”。

最终的 Doxygen 输出包含一个用于缺少交互图的占位符,以及“测试交互图”标签。

我一定是在 Doxyfile 文件中遗漏了一些东西。如何让 Doxygen 调用 mscgen.exe 可执行文件?

查看生成的 PNG 文件,Doxygen 正在寻找的文件丢失了,所以我想mscgen.exe 根本没有运行。

这是 Doxygen 生成的 HTML 代码块:

<div align="center">
<img src="../../msc_inline_mscgraph_1.png" alt="msc_inline_mscgraph_1" border="0" usemap="#msc_inline_mscgraph_1.map">
<map name="msc_inline_mscgraph_1.map" id="msc_inline_mscgraph_1.map"></map>
<div class="caption">
Test interaction diagram</div>
</div>

【问题讨论】:

  • 我在 Windows 上的 mscgen 在我的路径中,当使用默认 Doxyfile(即使用 doxygen -g 生成)运行示例时,我看到了正确的图表。另一种方法是在 Doxyfile 的变量 MSCGEN_PATH 中设置 mscgen 可执行文件的路径。
  • @albert - 我在 PATH 系统变量中设置了 mscgen 的路径。它是可见的,例如,从命令行。这应该意味着每个应用程序都应该看到它,对吧?
  • 我认为确实每个应用程序都应该看到它。您可以通过在 DOS 框中输入 mscgen -v 来测试它。您是否尝试过使用默认 Doxyfile 给出的示例?如果是,结果如何?

标签: c++ uml doxygen mscgen


【解决方案1】:

尝试删除标题。我在 Windows 上也有同样的问题。我没有其他方便的平台来比较结果并查看它是否是仅限 Windows 的问题。当我这样做时:

@msc "hello, world"
   a, b;
   a => b;
@endmsc

图形不生成。如果我删除标题,如下所示:

@msc
   a, b;
   a => b;
@endmsc

图形生成,但没有标题。当标题出现时,我看到错误:

错误:未能打开地图文件path-on-my-local-computer-redacted/docs/html/inline_mscgraph_2.msc.map 以包含在文档中!

有趣的是,当没有标题时也不会生成文件——不同之处在于 Doxygen 似乎并不关心地图文件不存在。我没有看到控制地图文件生成的明显选项。

抱歉,仅在原始问题几个月后提供部分答案。我到这里谷歌搜索相同问题的答案,并希望这至少可以让其他人获得没有标题的序列图。

【讨论】:

    【解决方案2】:

    我遇到了完全相同的问题,发现原因是 msc 部分中的语法错误。一旦我得到它没有错误,一切都会很好。

    我需要一段时间才能确定问题所在。搜索将我带到一个人的线程“Problem with msc graph”,他有同样的问题和解决方案:

    [...] 如果 msc 标签中存在语法错误,则在末尾 生成运行我收到以下错误消息:

    错误:无法打开地图文件 [...]

    【讨论】:

      猜你喜欢
      • 2015-09-15
      • 1970-01-01
      • 2020-04-14
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 2012-02-24
      相关资源
      最近更新 更多