如何在C++项目中分开文档化同名的C++与QML文件?
解决Doxygen中C++与QML同名类文档合并问题的方案
方法一:给QML类添加命名空间前缀
- 在QML文件的类注释里通过
@namespace标签指定专属命名空间,让Doxygen将QML类归到独立命名空间下,和C++类区分开:/** * @namespace QML * @class Login * @brief QML端登录界面组件 */ - 生成的文档里,QML的Login类会显示在QML命名空间下,和C++的Login类完全独立。
方法二:拆分配置文件生成独立文档
- 针对C++和QML文件分别创建Doxygen配置:
- 新建
Doxyfile_cpp,专门处理C++文件:INPUT = ./src/cpp FILE_PATTERNS = *.cpp *.h OUTPUT_DIRECTORY = ./docs/cpp_docs - 新建
Doxyfile_qml,专门处理QML文件:INPUT = ./src/qml FILE_PATTERNS = *.qml INPUT_FILTER = doxyqml OUTPUT_DIRECTORY = ./docs/qml_docs
- 新建
- 分别执行
doxygen Doxyfile_cpp和doxygen Doxyfile_qml,得到两份完全独立的文档,彻底避免同名合并问题。
方法三:手动指定类的唯一ID
- 在C++类的注释中用
@id标签设置唯一标识:/** * @class Login * @id cpp_login * @brief C++端登录逻辑处理类 */ class Login { /* ... */ }; - 在QML类的注释中用doxyqml支持的
@id标签设置不同的唯一标识:/** * @class Login * @id qml_login * @brief QML端登录交互组件 */ - Doxygen会根据ID识别为不同类,不会合并同一名称的条目。
方法四:重命名QML类的显示名称
- 在QML类的注释里用
@name标签修改文档中的显示名称,明确区分C++与QML类:/** * @class Login * @name QML_Login * @brief QML登录界面组件 */ - 生成的文档中QML类会以
QML_Login作为条目名称,和C++的Login类形成明确区分。
内容的提问来源于stack exchange,提问作者Elanchezian R
相关产品推荐
相关产品推荐

