【发布时间】: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 给出的示例?如果是,结果如何?