xygen:在cpp文件中使用单独的源目录和头目录记录一个类,同时使用宏定义名称空间



我试图用以下文件记录一个库:

include/mylib/mylib_global.h
include/mylib/SomeClass.h
source/SomeClass.cpp
Doxyfile

包括/mylib/mylib_global.h:

#pragma once
#define MYLIB_NAMESPACE_BEGIN namespace mylibns {
#define MYLIB_NAMESPACE_END   }

包括/mylib/SomeClass.h:

#pragma once
#include "mylib_global.h"
MYLIB_NAMESPACE_BEGIN
class SomeClass
{
public:
    SomeClass();
};
MYLIB_NAMESPACE_END
源/SomeClass.cpp:

#include "mylib/SomeClass.h"
MYLIB_NAMESPACE_BEGIN
/*!
 * class SomeClass
 * This is a sample class.
 */
/*!
 * This is a constructor.
 */
SomeClass::SomeClass()
{
}
MYLIB_NAMESPACE_END

Doxyfile:

PROJECT_NAME = mylib
INPUT = .
RECURSIVE = YES
MACRO_EXPANSION = YES

氧气产生以下警告:

Doxygen version used: 1.9.3 (c0b9eafbfb53286ce31e75e2b6c976ee4d345473)
[...]
include/mylib/SomeClass.h:7: warning: Compound mylibns::SomeClass is not documented.
*** Doxygen has finished

如果我执行以下任何操作,它都可以工作:

  • 移动cpp到include/。但是我不希望它在那里。
  • 将文档移动到标题。但是我想保持简短。
  • namespace mylibns {代替cpp中的宏。但是我希望命名空间是可配置的。
  • MACRO_EXPANSION = NO。但这也会从文档中删除命名空间。
  • 在氧注释中显式地声明名称空间:class mylibns::SomeClass。然而,这只有助于解决这个特定的问题(氧也无法解决过载的功能)。

没用的东西:

  • INPUT参数指定任意较长的路径组合。
  • EXTRACT_ALL = YES
  • CLANG_ASSISTED_PARSING = YES

我如何正确地做到这一点?

在文件source/SomeClass.cpp中,您有:

#include "mylib/SomeClass.h"

但是文件SomeClass.h位于include/mylib中,所以你必须告诉氧在哪里找到包含文件。这可以通过以下设置来实现:

INCLUDE_PATH = include

(类似于您对编译器所做的设置,如-I include)

相关内容

  • 没有找到相关文章

最新更新