clang - 编译Clang工具RecursiveASTVisitor时出错: 错误:返回类型CreateASTConsumer冲突

  显示原文与译文双语对照的内容

我只是学习关于的clang工具如何编写基于RecursiveASTVisitor的ASTFrontendActions工具。 我遵循文档中的示例并编译了示例代码,总是有一个错误。 我不知道为什么会有这个错误,怎么解决它。 我没有找到相关问题的解决方法。 我不知道是谁遇到了同样的问题并解决了。

/home/sun/project/clang-llvm/llvm/tools/clang/tools/extra/find-class-decls/FindClassDecls.cpp:44:31: 错误:在/home/sun/project/clang-llvm/llvm/tools/clang/tools/extra/find-class-decls/FindClassDecls. cpp中的文件中指定的返回类型冲突:0: 0: /home/sun/project/clang-llvm/llvm/tools/clang/include/clang/Frontend/FrontendAction. h: 64: 40: 错误:覆盖'virtual: std::unique_ptr:: compilerinstance&,llvm:: stringref )的忍者: 生成已经停止:子命令失败。

谢谢!

时间: 作者:

哦,我已经更新了剩下的文档。 它应该有:


class FindNamedClassAction : public clang::ASTFrontendAction {
public:
 virtual std::unique_ptr<clang::ASTConsumer> CreateASTConsumer(
 clang::CompilerInstance &Compiler, llvm::StringRef InFile) {
 return std::unique_ptr<clang::ASTConsumer>(
 new FindNamedClassConsumer(&Compiler.getASTContext()));
 }
};

r215323 中,FrontendAction::CreateASTConsumer 被更改为返回 std::unique_ptr <clang::ASTConsumer> 。 我已经更新了 http://clang.llvm.org/docs/RAVFrontendAction.html的文档,以反映。

...