2012-07-26 115 views
3

我试图首次使用Doxygen。在运行Doxygen的,我提出了一个大量以下形式的警告:Doxygen警告:记录的功能未声明或定义

<码> .CXX:<行号>:警告:记录功能`<功能> :: <功能>“未声明或定义。

我不知道如何解决这个问题。我正在使用一个大型的C++包,这种类型的警告在运行Doxygen时被抛出了几百倍。

这里有更具体的信息:

例子警告:代码

  Accept.cxx:14: warning: documented function `Accept::Accept' was not declared or defined. 

相应的实例部分:

  #include "Analysis/Accept.h" 
      #include "Analysis/Cutflow.h" 
      #include "GlaNtp/GlaUtil/Steer/Steer.h" 
      #include <iostream> 

      Accept::Accept(unsigned int cutmask, unsigned int invertword, StringIntMap* CutTypeMap, Cutflow* analysis_cutflow): m_cutmask(cutmask), m_invertword(invertword), 
                      m_cutword(0),m_cutword_set(false), m_CutTypeMap(CutTypeMap), 
                        m_analysis_cutflow(analysis_cutflow){ 
                         // this is constructor 
      InitBitOrder(); 

      } 

      Accept::~Accept(){} 

      void Accept::setCutWord(const unsigned int &cutword){ 
      m_cutword_set = true; 
      m_cutword = cutword; 
      } 

      bool Accept::didBitPass(){ 
      //std::cout << "Rick Evnt Pass: " << rickTestCutWord() << std::endl; 
      return testCutWord(); 
      } 

      void Accept::InitBitOrder(){ 

      Steer* bitorsteer=new Steer(); 

      std::string configfile="ConFigFiles/ApplyBits/BitOrderConfigurationFile.txt"; 

      if(!bitorsteer->ReadFile(configfile)){ 
      std::cout << "Fatal ERROR: Failed to read Bit Order configuration steering file: " << configfile << std::endl; 
      delete bitorsteer; 
      bitorsteer=0; 
      exit(1); 
      } 

      m_bitOrderMap = new StringIntMap("BitOrder", bitorsteer);// bit order 

      delete bitorsteer; 
      } 

我会很感激你可能拥有的任何援助,指着我的权利方向。

抢占感谢

回答

3

我的猜测是Doxygen的未解析Analysis/Accept.h头文件,所以它不是看到Analysis类的声明。在输出日志中,检查确实正在处理Analysis/Accept.h

为确保Doxygen解析Analysis目录,您可能需要在Expert-> Input(在Doxygen GUI前端)中添加其他源目录,和/或启用Recursive选项。也许你必须在当前指定的目录之上指定一个源目录。

+0

谢谢,启用递归选项为我做了,即使我的源代码路径包含我需要解析的所有文件。 – Alex 2015-11-24 07:52:31

1

我遇到了同样的问题,并遵循Emile Cormier给出的建议。在我的情况下,相关的头文件确实没有被解析。这是因为我有一个扩展名为.h的C++头文件。我本来在我Doxygen.in文件中的以下内容:我注意到声明

EXTENSION_MAPPING  = .h=C++ 

在输出仔细观察:“添加自定义扩展名映射:..h将被视为C++语言”,表示一个额外的“”。从相关行删除期限解决了我的问题。

0

FWIW,我还有另一个案例触发了这样一个警告:在两个不同的地方完成了一个typedef。这对于C++来说是可以的,但是会导致doxygen(1.8.7)发出这个警告。重新排序以定义一个单一的定义。

相关问题