自定义 DICE 预处理器
customizing doxygen preprocessor
我是Doxygen的新手,无法弄清楚我是否缺少特定步骤或代码太难解析。 这个项目中的几乎每个类都会#include <common.hpp>
,其中定义了以下内容:
#define DFS_NAMESPACE_BEGIN namespace dfs {
#define DFS_NAMESPACE_END }
例如在类 Alg/Thing.hpp
#ifndef _DFS_ALG_THING_H
#define _DFS_ALG_THING_H
#include <common.hpp>
DFS_NAMESPACE_BEGIN
class Thing {
...
};
DFS_NAMESPACE_END
#endif
我有
-
ENABLE_PREPROCESSING=YES
-
MACRO_EXPANSION=YES
-
EXPAND_ONLY_PREDEF=NO
-
SEARCH_INCLUDES=YES
基于Doxyfile声称的内容应该足够了。 我尝试明确指定common.hpp
路径,PREDEFINED
,关闭SKIP_FUNCTION_MACROS
,以及其他一些没有成功。 不过,我能得到PREDEFINED
给我的最好的东西不是class Thing
它让它namespace Thing
。
如果我只是写出命名空间而不是使用上述define
,命名空间确实可以按预期工作,但我想保留这个宏(或者用类似的宏替换它?
这是可以修复的吗?有没有另一种方法可以只是原始文本替换DFS_NAMESPACE_*
或其他东西?感谢您的任何帮助!
好的,这应该是不必要的,但我能够让它工作
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = DFS_NAMESPACE_BEGIN="namespace dfs {"
PREDEFINED += DFS_NAMESPACE_END="}"
SEARCH_INCLUDES = YES
SKIP_FUNCTION_MACROS = YES
我想我对原始PREDEFINED
枚举有问题,我用逃避了它,但我认为前导空格可能引起了问题?
只是有点令人沮丧,因为我不想在 Doxyfile 中枚举我想要的所有宏。 希望有一天有人能从中受益。
相关文章:
- 错误:无效的预处理指令 #i 的意思是 #if?
- C++预处理会生成变量成员、资源库和映射
- 使用预处理指令检查是否包含标头?
- 预处理的 C/C++ 文件是否特定于计算机?
- 使用 GCC 对 C 文件进行部分预处理(不删除 "define" 指令)
- 在 CPLEX 中求解线性规划,无需剪切和预处理
- CPP -D 选项,用于预处理 Fortran 代码
- 错误:粘贴"tmp_UINT"和"+"未提供有效的预处理令牌
- 任务计划程序库的预处理不起作用 - 多定义错误
- Eclipse 问题 - 编译期间不考虑 .c 和 .cpp 文件中定义的预处理
- 使用python预处理后,C++(opencv)中的垫子类型数据与image_to_array相同
- Howo 使用 cl 预处理为 masm 组装生成一个单独的文件
- 我有一个预处理的 C/C++ 源文件 (cacti.i).如何从这个 .i 文件生成可执行二进制文件,以便我可以像 ./
- 如何使用Visual Studio C/C++编译器(cl.exe)来预处理我的objective-C代码
- 是具有预处理前分支实现的结构违反ODR
- 与不完整的Cholesky预处理的共轭梯度返回特征库的意外错误
- Visual Studio C - 无法输出预处理文件
- 在海湾合作委员会中加快宏观预处理的任何方法
- 所有结构成员的预处理器批处理
- 当头文件被预处理时是否有一个预处理器选项显示?