[英]Doxygen with *.in file
我用* .in文件生成函數
class Foo
{
public:
...
#define FUNCTION(returnType, getterName) \
returnType getterName(uint8_t iValue) const;
#include "Functions.in"
#undef FUNCTION
...
};
並想使用Doxygen。 Doxygen配置如下所示:
...
INPUT = Path/To/Foo
...
FILE_PATTERNS = *.in \
*.c \
*.cc \
*.cxx \
*.cpp \
*.c++
...
SEARCH_INCLUDES = YES
...
INCLUDE_PATH = Path/To/Foo
...
我可以在文檔中看到* .in文件,但不能在類中看到函數。 另外Doxygen會產生以下警告
Foo.h:10: warning: include file Functions.in not found, perhaps you forgot to add its directory to INCLUDE_PATH?
有人知道如何將Doxygen與* .in文件一起使用嗎? 實際上可以將Doxygen與生成的代碼一起使用嗎?
如果您閱讀Doxygen預處理文檔 ,將會看到
doxygen的內置C預處理程序可以解析用作doxygen輸入的源文件。
和
默認情況下,doxygen僅執行部分預處理。 也就是說,它評估條件編譯語句(如#if)並評估宏定義,但不執行宏擴展。
可以更改此默認行為:
如果要擴展CONST_STRING宏,則應將配置文件中的MACRO_EXPANSION標記設置為
YES
。
因此,解決方案是不通過Doxygen運行*.in
文件,而是將MACRO_EXPANSION
配置變量設置為YES
,宏將被完全展開,並且應解析其展開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.