2015-02-24 94 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 [...]