2015-02-24 59 views
1

我正在尝试使用外部Mscgen实用程序绘制与Doxygen的交互图。无法生成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> 
+0

我在Windows mscgen是在我的道路,并用默认的Doxyfile运行示例时(即doxygen的-g产生)我看到一个正确的图。另一种方法是在Doxyfile的变量MSCGEN_PATH中设置mscgen可执行文件的路径。 – albert 2015-02-25 11:47:23

+0

@albert - 我在PATH系统变量中设置了mscgen的路径。它是可见的,例如,从命令行。这应该意味着每个应用程序都应该看到它,对吧? – Pietro 2015-02-25 14:57:40

+0

我认为每个应用程序都应该看到它。您可以通过在DOS框中输入mscgen -v来测试它。你是否尝试过使用默认的Doxyfile给出的例子?如果是这样的结果是什么? – albert 2015-02-25 16:47:41

回答

1

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

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

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

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

该图形生成,但没有标题。当标题是目前我看到的错误:

error: failed to open map file path-on-my-local-computer-redacted/docs/html/inline_mscgraph_2.msc.map for inclusion in the docs!

有趣的是,当有不生成文件中没有说明或者 - 所不同的是Doxygen的似乎并不关心,地图文件不存在。我没有看到一个明显的控制地图文件生成的选项。

对不起,只是原始问题后几个月的部分答案。我到Google这里搜索同一个问题的答案,并希望这至少可以让别人得到没有标题的序列图表。

1

我有完全相同的问题,发现msc部分的语法错误是原因。一旦我得到它没有错误,这一切都建立良好。

我花了一段时间才找出问题所在。一个搜索带我去了那家伙的线程“Problem with msc graph”谁有同样的问题和解决办法:

[...] If there is a syntax error in an msc tag then At the end of the generation run I get the following error message:

error: failed to open map file [...]