簡體   English   中英

如何獲得Doxygen從包含文件擴展宏?

[英]How do I get Doxygen to expand macros from include files?

我在名為macros.h的文件中定義了許多多行宏。 在我的doxyfile中,我有

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = NO
PREDEFINED             =
EXPAND_AS_DEFINED      =
SKIP_FUNCTION_MACROS   = NO

但是Doxygen仍然不會在任何包含macros.h的源文件中擴展宏。 我運行“ doxygen -d預處理程序doxyfile”以查看預處理程序的輸出,並且它輸出如下消息:

#include macros.h: not found or already included! skipping...

您已經告知編譯器您的包含路徑,但是您沒有告訴doxygen。 因此,它嘗試打開“ macros.h”並得到一個找不到文件的錯誤。

您需要在Doxyfile中正確設置INCLUDE_PATH

@Ben:您實際上有INCLUDE_PATH上班嗎?

我了解理論。 我已經按照說明(以絕對形式和相對形式)設置了INCLUDE_PATH,但無濟於事。 我已將INCLUDE_FILE_PATTERNS設置為* .h。 但是,在處理我的.cpp文件時,Doxygen會在INPUT目錄中找到所有標頭,但在lib /子目錄中卻找不到任何標頭。

我發現的唯一解決方案是:

1)在INPUT目錄中創建一個指向其lib /子目錄中每個標題的符號鏈接。 這是丑陋且無法概括的。

2)將RECURSIVE標簽設為YES。 這是不希望的,因為現在將INPUT的tests /子目錄的全部內容添加到了生成的文檔中。

我傾向於認為INCLUDE_PATH功能已被破壞(至少在我正在運行的1.7.1版本中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM