我第一次尝试使用Doxygen。在运行Doxygen时,我收到了大量以下形式的警告:
< code> .cxx:<行号>:警告:记录的函数`< 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;
}
我很感激你指点我正确方向的任何帮助。
先发制人的谢谢
答案 0 :(得分:3)
我的猜测是Doxygen没有解析Analysis/Accept.h
头文件,所以它没有看到Analysis
类声明。在输出日志中,检查Analysis/Accept.h
确实正在处理。
要确保Doxygen解析Analysis
目录,您可能必须在Expert-&gt; Input(在Doxygen GUI前端中)添加其他源目录,和/或启用Recursive选项。也许您必须指定一个比您当前指定的目录高一级的源目录。
答案 1 :(得分:1)
我遇到了同样的问题,并遵循了Emile Cormier的建议。在我的情况下,相关的头文件确实没有被解析。这是因为我有一个扩展名为.h的c ++头文件。我最初在Doxygen.in文件中有以下内容:
EXTENSION_MAPPING = .h=C++
仔细查看输出,我注意到语句:“添加自定义扩展映射:..h将被视为语言c ++”,表示额外的“。”。从相关行中删除句点修复了我的问题。
答案 2 :(得分:0)
FWIW,我有另一个案例引发了这样的警告:在两个不同的地方完成了一个typedef。这对于C ++来说是好的,但是会导致doxygen(1.8.7)发出这个警告。重新排序以使其具有单一定义。