簡體   English   中英

帶* .in文件的Doxygen

[英]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.

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