3

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

<code>.cxx:<line number>: 警告:记录的函数 `<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;
            }

我将不胜感激您在为我指明正确方向时可能提供的任何帮助。

先发制人的感谢

4

3 回答 3

3

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

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

于 2012-07-26T22:11:42.207 回答
1

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

EXTENSION_MAPPING      = .h=C++

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

于 2013-05-14T11:08:11.923 回答
0

FWIW,我有另一个案例触发了这样的警告:在两个不同的地方完成了 typedef。这在 C++ 中没问题,但会导致 doxygen (1.8.7) 发出这个警告。重新排序以使单个定义修复它。

于 2014-07-31T12:26:27.170 回答