草庐IT

clang_complete

全部标签

c++ - 如何遍历clang AST的所有节点?

我可以使用recursivevisitor类遍历clangAST的特定子树,但我想做的是逐个节点遍历clangAST。如果有人能帮助我,我将不胜感激。提前致谢。 最佳答案 RecursiveASTVisitor可以做你需要的。实现membermethodsTraverseDecl(Decl*x)、TraverseStmt(Stmt*x)和TraverseType(QualTypex)用于您的RecursiveASTVisitor`派生类(例如MyClass)会成功的。结合起来,这三种方法将带您到达AST中的每个节点。例子:class

c++ - std::unique_ptr 的 clang 错误

我有一个名为IList的基础对象。然后我有VectorList,它继承了IList。然后我有这样的功能:std::unique_ptrfactory(){autovlist=std::make_unique();returnvlist;}这在gcc下编译没有问题,但是clang给出以下错误:test_file.cc:26:9:error:noviableconversionfrom'unique_ptr>'to'unique_ptr>'returnvlist;如何正确处理此类错误? 最佳答案 看起来(您的)Clang在这方面仍然遵循

c++ - 为什么 gcc 警告 decltype(main()) 而不是 clang?

采用以下代码:intmain(){decltype(main())x=0;returnx;}gcc提示:main.cpp:Infunction'intmain()':main.cpp:8:19:warning:ISOC++forbidstakingaddressoffunction'::main'[-Wpedantic]decltype(main())x=0;^main.cpp:8:19:warning:ISOC++forbidstakingaddressoffunction'::main'[-Wpedantic]但不是clang。那么decltype(main())会引发这个错误吗?

windows - 如何将 std=c++11 标志添加到 clang-cl?

我尝试在Windows下用clang-cl编译一个C++11程序。Clang-cl是clang的包装器,可以更兼容cl(VisualStudio编译器)。我尝试添加-std=c++11和/std=c++11但都被拒绝了。这并不奇怪,因为cl没有C++11标志。但是我不能通过clang-cl使用C++11功能。如何在clang-cl中启用C++11支持? 最佳答案 在前面提到的文档中说:http://clang.llvm.org/docs/UsersManual.html#clang-clclangdefaultstoC++11for

windows - 在 Windows 上构建 Clang : DiagnosticCommonKinds. inc header 不存在

我正尝试按照http://clang.llvm.org/get_started.html中的说明使用MSVisualStudio2013在Windows8.1上构建Clang在“使用VisualStudio”部分。我已经检查了llvm到D:\Current\llvm,clang到D:\Current\llvm\tools\clang,创建D:\Current\llvm_build并运行"D:\ProgramFiles(x86)\cmake-3.3.0-win32-x86\bin\cmake.exe"-llvm_build目录中的G“VisualStudio12”..\llvm。LLVM

windows - 为什么 Windows 上的 llvm-config 不为 clang++.exe 发出正确的参数?

我不是经验丰富的LLVM用户,但我正在尝试在Windows上编译LinuxLLVM项目。该项目是GHDL。因为适用于Windows的即用型LLVM安装程序没有捆绑llvm-config,所以我需要从源代码编译LLVM和clange。该项目需要LLVM3.5。首先,我下载了llvm-3.5.2和clang-3.5.2并使用CMake将其转换为VisualStudio2013项目。然后我用VS2013编译了一下。原始makefile调用llvm-config。生成的字符串传递给clang++:clang++-c-I`/usr/lib/llvm-3.5/bin/llvm-config--in

c++ - 在 Windows 上使用 Clang 链接 SDL2 时出错 "LNK1561: entry point must be defined"

我正在尝试在Windows上使用clang来编译和链接SDL2应用程序。这样做的原因是试图让我的开发环境与其他使用OSX和XCode(使用clang编译)的团队成员保持一致。由于VisualC++编译器比clang编译器严格得多,我可能会提交不会在clang下编译的更改。我宁愿不必安装VS2015来使用实验性LLVM构建环境:(链接已删除)我已经在Windows上安装了LLVM/clang工具(不是从源代码构建的,只是从这里下载二进制文件:(链接已删除))并且可以使用clang成功构建和运行“helloworld”控制台应用程序。我想做的是拥有一个批处理文件,允许我定期构建和链接cla

windows - 在 Windows 上编译 Clang

我按照http://clang.llvm.org/get_started.html中的说明进行操作我用MSVC2010编译了llvm和clang的最新主干。现在我可以用Clang编译简单的程序,但是当我尝试编译这个程序时,我遇到了很多错误。这是程序:#includeintmain(){return0;}下面是一些错误:Infileincludedfromhello.cpp:1:InfileincludedfromC:\ProgramFiles\MicrosoftVisualStudio10.0\VC\include\algorithm:6:InfileincludedfromC:\Pr

c++ - 在 Windows 中安装 Clang 时出现问题

我一直在尝试使用Windowsxp在虚拟机中安装clang,首先我尝试使用此页面中的Windows版clang的预构建二进制文件:LLVMDownload我收到了这个错误:FailedtofindMSBuildtoolsetdirectory所以,我尝试按照这个问题中解释的步骤编译clang:CompilingClanginWindows,但我也遇到了错误:InfileincludedfromC:\llvm-3.7.0.src\lib\Support\DynamicLibrary.cpp:40:0:C:\llvm-3.7.0.src\lib\Support\Windows/Dynami

windows - clang 构建 qt 的 mkspecs 是什么?

如果我想在Windows下用gcc构建qt,配置选项是-platformwin32-g++,但是当我想用clang构建qt时,该选项是什么? 最佳答案 clang/windows组合没有。我假设可以很容易地将win32-g++修改为win32-clang,但遵循linux-g++和linux-clang之间的区别:diff-w-u../linux-g++/qmake.conf./qmake.conf---../linux-g++/qmake.conf2012-11-2016:38:28.000000000+0100+++./qmak