这是我用Doxygen尝试的一个小实验。 说我有6个文件:
h1.h:
class A
{
public:
int func1();
}
f1Data.h:
#define val 10
f1.cpp:
#include "h1.h"
#include "f1Data.h"
int A::func1()
{
return val;
}
h2.h:
#include "h1.h"
class B: public A
{
public:
int func2();
};
f2Data.h
#define val 20
f2.cpp
#include "h2.h"
#include "f2Data.h"
int B::func2()
{
return val;
}
当我在配置文件中放置GENERATE_XML = yes和CALL_GRAPH = yes并运行doxygen时,我看到生成的XML文件中存在错误。特别是,我看到在A :: func1()的引用中,给出了来自f2Data.h的#defined值而不是f1Data.h中的#defined值。只有当两个文件中的宏名称相同时才会发生这种情况[在这种情况下, val ]。
任何人都可以告诉我这是不是doxygen的错误或我的doxygen使用不正确?
答案 0 :(得分:0)
Doxygen在处理代码时做了几个假设:
这些通常是很好的编程实践,但不是由您的示例演示的C强制执行。
如果您不遵守上述两条规则,则doxygen的输出可能不正确。