繁体   English   中英

Doxygen警告:未声明或定义记录的功能

[英]Doxygen warning: documented function not declared or defined

我第一次尝试使用Doxygen。 在运行Doxygen时,我收到了大量以下形式的警告:

<code> .cxx:<line number>:warning:未声明或定义记录的函数`<function> :: <function>'。

我不知道如何处理这个问题。 我正在使用一个大型的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;
            }

我将非常感谢您指导我朝正确方向提供的任何帮助。

先发制人的谢谢

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

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

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

EXTENSION_MAPPING      = .h=C++

仔细查看输出,我注意到语句:“添加自定义扩展映射:..h将被视为语言c ++”,表示额外的“。”。 从相关行中删除句点修复了我的问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM