草庐IT

clang_complete

全部标签

c++ - 无法使用 Microsoft CodeGen 使用 Visual Studio 2015 和 Clang 3.7 构建 Google Test

使用VS2015及其新的内置clang工具集/项目模板,我无法成功构建GoogleTest。我收到以下错误:Erroruseofundeclaredidentifier'chdir';didyoumean'_chdir'?Erroruseofundeclaredidentifier'fdopen'Erroruseofundeclaredidentifier'read'Erroruseofundeclaredidentifier'write'Erroruseofundeclaredidentifier'close'Erroruseofundeclaredidentifier'O_RDON

c++ - 为什么链接到 librt 在 g++ 和 clang 之间交换性能?

我刚找到thisanswer来自@tony-d,带有用于测试虚函数调用开销的工作台代码。我检查了是否使用g++进行基准测试:$g++-O2-ovdtvdt.cpp-lrt$./vdtvirtualdispatch:1500000000.128562switched:1500000000.0803207overheads:1500000000.0543323...我得到了比他更好的性能(比率大约为2),但后来我用clang进行了检查:$clang++-3.7-O2-ovdtvdt.cpp-lrt$./vdtvirtualdispatch:1500000000.462368switched

c++ - Windows clang Hello World lnk4217

我已经安装了clang6.0版以及VisualStudio2017。我正在编译一个简单的“helloworld”应用程序:#includeintmain(){std::cout使用clanghello.cpp这给了我警告:hello-d1b2c6.o:warningLNK4217:locallydefinedsymbol__std_terminateimportedinfunction"int`public:staticunsigned__int64__cdeclstd::char_traits::length(charconst*const)'::`1'::dtor$2"(?dtor

c++ - 为什么 clang 不使用自动返回类型省略此函数中的拷贝?

我发现了一个案例,其中clang8.x没有省略gcc和msvc没有问题的模板化类对象的拷贝。在我的实际应用程序中,这个多余的拷贝非常昂贵,所以我试图深入了解这一点,并最终更好地理解在C++17中何时执行和不执行复制省略。问题显示在下面的代码片段中。返回命名类对象的自动返回类型声明的函数在其主体中有一个额外的拷贝构造。如果返回被重新编码为返回一个未命名的临时变量,则会发生省略。如果函数被重新编码以显式返回类的实例(而不是自动),则会发生省略。如果结构A没有模板参数,那么也会生成完全省略的代码。问题显示是否一切都是noexcept或允许内联(NOINLINE是为了让您无需执行代码就可以在G

c++ - 使用元编程的私有(private)成员存在性测试,GCC vs clang,哪个是对的?

这更像是一个C++标准问题。考虑以下代码:templateclasshas_Data{typedefcharone;typedeflongtwo;templatestaticonetest(typeof(&C::Data));templatestatictwotest(...);public:enum{value=sizeof(test(0))==sizeof(char)};};classMyClass{private:structData{};};voidfunction(boolval=has_Data::value){}以上代码适用于gcc(GCC)4.4.3但是clang版本3

c++ - 表达式不是积分常量 clang libc++ threading

我试图在我的linux机器(ubuntu)上编译一个非常简单的线程程序,但即使我指定了libc++,clang似乎仍然向我抛出错误。我的程序是:#include#includevoidcall_from_thread(){std::cout生成文件:CC=clang++CFLAGS=-std=c++11-stdlib=libc++-pthread-c-Wall#properdeclarationoflibc++,butstillanerror...LDFALGS=SOURCES=main.cppOBJECTS=$(SOURCES:.cpp=.o)EXECUTABLE=bimapall:

c++ - Windows 上的 clang 和 <iostream>

根据http://clang.llvm.org/get_started.html我在Windows上使用VisualStudio2010执行了ALL_BUILD,并使用$PATH=...ClangSourcBuildPath...\build\bin\Release将构建的内容添加到我的系统路径中我现在可以在控制台上编译以下文件:$>clangfile_c.c//file_c.c#includeintmain(){printf("helloworld\n");return0;}但是如果我对以下文件($>clangfile_cpp.cpp)执行相同的操作://file_cpp.cpp#i

c++ - 用于解释自定义 c++11 属性的 Clang/GCC 插件

我正在尝试为clang或gcc编写一个插件来解释自定义[[cxx11::attributes]]并基于此生成一些代码。从4.5版本开始,gcc支持几乎在每个编译步骤都可以Hook的插件。但是,我认为gcc不太清楚如何修改它的AST并在其中导航(至少我在尝试时遇到了麻烦......)。然后我想起clang被设计成可以扩展并用作库,于是我试了一下。在四处挖掘之后,我发现一些主题说clang不支持自定义属性。我哭了。我的主要目标是根据用户可以在代码中使用的任何类型的注释生成代码。我想使用c++11属性,因为它们非常清晰。Pragma也是一种选择,但它们有一些限制。问题如下:1)是否真的(目前

c++ - 编译 clang-llvm 示例

我正在尝试编译Hello目录lib/Transforms/Hello中的示例,它基本上是LLVMpass的HelloWorld,但是当我尝试使用make编译它时出现以下错误。../../../Makefile.common:61:../../../Makefile.config:Nosuchfileordirectory../../../Makefile.common:69:/Makefile.rules:Nosuchfileordirectorymake:***Noruletomaketarget`/Makefile.rules'.Stop.知道问题是什么以及如何解决吗?

c++ - 如何使用 Python 绑定(bind)到 Clang 解析单个文件?

我正在编写一个简单的工具来帮助重构我们应用程序的源代码。我想基于wxWidgets库解析C++代码,它定义了GUI并生成XML.ui文件以与Qt一起使用。我需要获取所有函数调用和参数值。目前我正在尝试使用Python绑定(bind)到Clang,使用下面的示例代码我获得了标记及其种类和位置,但游标种类始终是CursorKind.INVALID_FILE。importsysimportclang.cindexdeffind_typerefs(node):"""Findallreferencestothetypenamed'typename'"""fortinnode.get_tokens