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