Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
 Clang_IT技术博客_编程技术问答 - 「Fatal编程技术网」

Clang 如何在包含stdio.h文件的文件上使用叮当声检查器时避免stdio.h错误

我已经在clang中实现了一个检查器。我已经编译了它,现在我用它检查一个c文件,其中包括stdio.h文件。我发出以下命令来运行检查程序: clang-cc1-analyze-analyzer checker=alpha.core.FuncPrototype原型funcprototypetest.c 我得到以下错误: funcprototypetest.c:1:10:致命错误:“未找到stdio.h”文件 #include <stdio.h> ^ #包括 ^ 有人能帮我

Clang getFilename返回一个空字符串

我有一个文件,我想从中提取其文件名。显然,我应该可以通过使用的。然而,当我处理一些头文件时,结果似乎总是一个空字符串 我遵循源代码,发现问题在于getFilename函数中,该函数的内容如下: /// Return the filename of the file containing a SourceLocation. StringRef getFilename(SourceLocation SpellingLoc) const { if (const FileEntry *F = get

Clang 对符号的未定义引用\uuu cxa\u free\u异常@CXXABI\u 1.3

使用clang链接程序失败如下: /usr/bin/x86_64-pc-linux-gnu-ld:stackoverflow.o:对符号“\uuuucxa\u free\u exception@@CXXABI\u 1.3”的未定义引用 P>就像GCC一样,你必须使用CLAN+++来链接C++程序你能提供更多关于你要编译的程序的解释吗?或者更好,你能提供一个?如果你只有一条错误信息,通常很难找到问题。我想,你的问题出现在低质量的队列中,因为从提供的有限信息来看,很难在你的答案中直接得出结论。因此

Clang Lcov不计数功能顶线

我正在使用lcov为我正在从事的项目生成覆盖信息。它基本上是工作的,除了某些原因,它似乎没有在每一种情况下计算函数的顶行。这意味着具有完整测试覆盖率的类文件仍将缺少几行,因此显示为90% 这没什么大不了的,但有点烦人。我不知道是否有人知道为什么 下面我提供了一个完整的示例来演示这个问题。当这个程序运行时,6行中有4行被“命中”,留下68.7%的行覆盖率,尽管所有行都被清晰地执行 GCOV输出 Summary coverage rate: lines......: 66.7% (4 of 6

Clang 我怎样才能比较两个数字?

除了简单地获取并检查decls的名称外,在clang中是否有一些方法可以比较两个或多个decls(clang::Decl)是否相同?您解决过这个问题吗?我认为解决方案是clang::Decl::getID。

能否指定OpenCL的Clang版本? 一个OpenCL程序,我最初为AMD GPU(RX 570)编写的,在Nvidia卡上运行时编译失败(RTX 3060,最新驱动程序),消息“代码>:28:5:错误:使用未知的构建英伟达公司的Mulax溢出程序< /P>

通过预处理器宏,我发现OpenCL代码现在可以用Clang3.4编译。根据文档,此版本尚不支持Clang 3.8中引入的\uuu内置\uu mul\u overflow() 是否可以指定OpenCL使用更新的Clang版本? 或者最新的Nvidia驱动程序真的仅限于这样一个旧的编译器吗?不幸的是,您无法控制OpenCL驱动程序使用哪个编译器。您可以尝试有条件地编译代码以适应不同的编译器,但仅此而已。这正是我所担心的。谢谢

svn-如何下载特定版本的llvm,clang

当I svn co llvm-3.3、clang-3.3、compiler-rt时,build通过了,但build没有在build/Debug+断言中创建clangexe。当我为svn只放了一个clang时,联合构建并没有通过,但他创建了clang exe。我是Ubuntu上的Linux用户 make[4]: Leaving directory `/home/rtrk/llvm/test/branches_release/release_33-build/tools/clang/runtime/

如何从基于clang的项目中创建预编译头?

我正在开发一个基于叮当声的工具,我需要能够在某些时候创建预编译的头文件。我在哪里可以找到关于如何制作的信息?据我所知,clang/LLVM文档中没有任何关于如何做到这一点的示例。如果您使用的是CMake,则使用会有所帮助。

Clang 哪个IDE可以安装和使用C++;14康斯特普放松?

如果这个问题超出主题,我很抱歉,但这是C++14程序员的可访问性问题 今天,我在我的PC(Windows 8.1/64位/x86)上更新了Qt v5.4,现在它支持gcc编译器v4.9.2。但我看到自gcc v5.1以来,constexpr放松(我真的很感兴趣)就可以使用了 谷歌搜索显示: clang是C++14最新特性的更好的编译器(v3.6甚至在处理实验性的C++17) clang不容易适用于Qt库 gcc和clang“数据”都可以下载,但我不是专家 所以我想问的是,如何在Windows

clang_parseTranslationUnit在对CTAG使用llvm clang时崩溃

我正在考虑由Libblang生成seastar的CTAG, 所以,我写了一些演示崩溃,我需要帮助 对于seastar项目,我从 seastar安装程序:install-dependencies.sh;cmake-DCMAKE\u BUILD\u TYPE=Debug-DCMAKE\u EXPORT\u COMPILE\u COMMANDS=1 (geretting然后编译_commands.json) 对于铿锵的CTAG,我从(这是我当前的演示) 首先:yum安装clanglibs clang

Clang 如何使用RecursiveASTVisitor在一个组合过程中执行预顺序和后顺序遍历

我成功地使用了Clang的RecursiveASTVisitor对Clang的AST进行了顺序前遍历和顺序后遍历。对于post-order遍历访问者,我定义了一个shouldtranversepostorder(),它返回true,并返回pre-order遍历的相反结果 我发现我真的很想做一个组合遍历,既有前序遍历,也有后序遍历。也就是说,如果存在Stmt节点,我希望遍历(1)调用preVisitStmt(Stmt*节点),然后(2)访问Stmt子节点的节点,然后(3)调用postVisitSt

Clang 如何为LLVM指定自定义stdlib目录

我有LLVM 3.3和Clang,以及 $ /tmp/clang/bin/clang -print-search-dirs programs: =/tmp/clang/bin:/usr/lib/gcc/i486-linux-gnu/4.4/../../../../i486-linux-gnu/bin libraries: =/tmp/clang/bin/../lib/clang/3.3:/usr/lib/gcc/i486-linux-gnu/4.4:/usr/lib/gcc/i486-linux

叮当作响的C++;口译译员 我很好奇使用CLAN作为嵌入式C++解释器。可以用它来解释“hello world”吗?目的是将源文件或源代码作为字符串,获得输入/输出流没有可执行文件调用(似乎CLANG的代码>驱动程序< /代码>执行 CLA

叮当作响的C++;口译译员 我很好奇使用CLAN作为嵌入式C++解释器。可以用它来解释“hello world”吗?目的是将源文件或源代码作为字符串,获得输入/输出流没有可执行文件调用(似乎CLANG的代码>驱动程序< /代码>执行 CLAN< /代码>和/或链接器可执行文件)。是CLAN库中的C++解释器。谢谢您的建议。不幸的是,我有奇怪的粘着错误:

Clang LLVM 3.5位代码是否与LLVM 3.3位代码兼容?

我将在一个环境中使用-emit LLVM-S-c file.cpp-o file.ll通过Clang 3.5生成LLVM位代码,并通过LLVM 3.3在另一个环境中执行它。请参阅lli工具。3.3 LLVM执行的can 3.5位代码是否向后兼容 PS.实际上它将由Emscripten在JS中执行,JS基于LLVM 3.3 trunk,如果有意义的话。我可以在LLVM 3.4和3.3之间移动,但我还没有安装3.5进行测试。这是否意味着它是向后兼容的,或者在我的示例中是兼容的?后面,我只验证了LLV

Clang 铿锵重写:找到调用表达式的顶部

我正在做一些源代码中的铿锵重写。我想在语句前插入一行。例如,如果我从if语句内部调用,如下所示: if (cmp(a,b) > 0 && cmp(c,d) < 0){ //do something } //there are call inside if (cmp(a,b) > 0 && cmp(c,d) < 0){ //do something } for (int a = 0; a < range(s); a++){ //do

Clang 从C+迁移旧项目+;Builder 10.2至10.2.3在运行时崩溃

我很难将旧的C++Builder 10.2项目升级到10.2.3(我们正在64位PC上使用32位的Clang编译器) 10.2.3安装顺利(在干净的Windows 10 PC上),-项目编译和链接-到目前为止,每个人都很高兴 但是,当在调试器中运行应用程序时,我可以看到MainForm的this指针(由于历史原因,是一个相当大的对象)在单个方法调用中突然变成垃圾(当调用它自己的方法时-就在构造函数完成之后),这导致了一个严重的失败 我尝试注释掉特定方法的\uuuu fastcall调用约定,然后

Clang 第一次调用参数后如何禁止铿锵格式断线?

我想为我的项目编写一个适当的.clang格式的文件。希望在函数调用期间禁止它在第一个参数后断行 好: 不正常(应禁止): 我已经尝试过了,但没有成功。对于您的具体案例,您需要将声明onnextline的allowallParameters设置为false。我认为这个名称是不言自明的。您应该始终发布您正在使用的.clang格式文件,让每个人都能看到,因为许多选项可能会影响同一段代码。你也没有说你到底做了什么。提供这些数据可以帮助你更快地得到答案,因为更多的人会对回答这个问题感兴趣。 foo(a,

Clang 什么';他在用叮当声';s包括优先事项?

我的命令: /usr/bin/c++ -fPIC -I/Users/me/project/include -I/usr/local/include/opencv \ -I/usr/local/include -I/opt/local/include -std=c++11 -O3 -M -c \ /Users/me/project/src/program.cpp | grep opencv program.cpp具有: #include "opencv2/core/core.hpp" #incl

Clang 用于矩阵向量计算的铿锵优化标志

我查看了由glm(用于3d计算的矩阵向量库)操作的clang生成的反汇编代码 我注意到clang对双精度运算进行了一些“矢量化”,例如,在一条SIMD指令中强制执行两次乘法 然而,对于单精度计算,代码对我来说似乎不好。使用的指令来自SSE指令集和寄存器MMX指令集,但每次执行一个浮点数的多重应用程序,甚至一组赋值(如矩阵赋值)都是由大量movss语句执行的。这些糟糕的赋值甚至适用于双精度代码 为什么会这样,有没有任何命令行参数可以促使clang做得更好?我知道编译器并没有什么神奇之处,但我想16

如何将clang cl设置为c++;14或c++;1z?

我试图用-std=c++14,-std=c++1z,-std=c++1y来设置clangcl参数。它们不起作用。我正在为windows x64和VS 2015使用clang 3.7预编译。下面链接的clang页面声称-std=c++11,-std=c++14以及-std=c++1z都是受支持的命令。现在考虑到,据我所知,clang cl是clang--driver mode=cl,它旨在模拟MSVCcl.exe。我不明白为什么会消除对平台不可知的特性的支持,比如C++标准。 编辑:在同一主题的

Clang 叮当声-C++;2011年和2014年的11项标准

我正在OSX10.10.5上构建Cogutils和Opencog --C编译器标识为AppleClang 6.1.0.6020053 --CXX编译器标识为AppleClang 6.1.0.6020053 /Users/davidlaxer/cogutils/opencog/util/files.cc:55:39: error: non- aggregate type 'const std::vector<std::string>' cannot be initialized wit

Clang 如何在llvm中获取全局变量的实际值

例如: int x=0; int y=0; Constant* myGlobal = new GlobalVariable( myLlvmModule, myLlvmType, true, GlobalValue::InternalLinkage, initializationValue ); ... Constant* constValue = myGlobal->getInitializer(); 其中x和y是全局变量,在main()函数中,我们执行以下操作: x++; y++;

构建LLVM后,clang可执行文件在哪里?

环境:Ubuntu 18.04仿生版 git克隆llvm项目后,从 我使用Cmake命令行生成了构建凭据,如下所示: cmake -DLLVM_TARGETS_TO_BUILD=X86 \ -DLLVM_TARGET_ARCH=X86 \ -DCMAKE_BUILD_TYPE="Release" \ -DLLVM_BUILD_EXAMPLES=1 \ -DCLANG_BUILD_EXAMPLES=1 \ -G "Unix Makefiles" \ ../llvm/ 生成makefile之后,我

当一个Clang AST节点有多个父节点时?

类clang::ASTContext有一个方法: DynTypedNodeList getParents(const NodeT &Node) 它返回给定AST节点的父节点列表 通常作为树的AST将是树结构,但出于某些原因(可能是性能原因),Clang允许节点具有多个父节点 在什么条件下(C++源代码模式),GETPARTENS()将返回多个父级?原始答案(不正确) AST是一棵树,每个节点只有一个父节点getParents不仅返回父级,还返回父级的父级,依此类推。因此,事实上,函数应

Clang TypedefDecl AST访问者删除父结构引用

我一直在努力从一个较老的平台上向前移植一些代码 叮当声的版本。我们有一个响亮的转变,走在东方, 执行一些基本的功能修改并退出 用于进一步编译的等效表示法。我们正在吃饭 正确复制TypedefDecl节点并维护其 父引用。考虑以下事项: typedef struct { char * buf; size_t pos, len, size, flags; } BufferBase; typedef BufferBase *Buffer; 使用标准的Clang方法,我们可以看到以下解

Clang 错误:ld:1架构armv7的重复符号

我到处找,找不到解决这个问题的办法。我尝试重命名.h/.m文件,删除它们并再次创建它们,同时查看问题是否出在project manager的编译源中 这就是错误: Ld /Users/mabdelhamid/Library/Developer/Xcode/DerivedData/Markschemes-dksalheponzwnocllyohgwmotxho/Build/Products/Debug-iphoneos/Markschemes.app/Markschemes normal armv

Clang 如何将本质转换为遗留体系结构?

我想在性能优化的代码上运行,该代码使用各种指令集扩展,如sse2、sse4.1。不幸的是,llvm-3.4解释器不支持它们: LLVM ERROR: Code generator does not support intrinsic function 'llvm.x86.sse41.ptestz'! 我不能在编译时禁用它,因为它们在源代码中被显式使用。我想,我需要的是一种自动向后翻译,将这种指令转换成普通的x86。Clang支持这样的功能吗?这是可能的,但是输出速度会非常慢

Clang 使用-O0生成有问题的铿锵代码

以下代码段: #include <string> #include <iostream> int main() { std::string s = std::to_string(5); std::cout << s << std::endl; return 0; } 请注意,对于-O2,代码段编译和链接都很好,所以我怀疑这可能是某种叮当作响的bug 编辑1: 我忘记输入链接错误: F:/Programs/LLVM/bin

Clang 用叮当声构建解析器

我需要使用clang构建一个AST,我发现唯一的教程很模糊,已经过时两年了。有人能给我举个例子吗?有几个教程演示了预处理器类的使用以及如何构建AST: (有点过时,但有很多解释) +1以获取漂亮而有用的链接,但似乎已经过时了。代码示例编译不正确。任何有用的链接,从零开始解释如何获得一个源文件,然后分析其源代码等等?在叮当的世界里,事情似乎变化得很快。我想最新的链接现在是谢谢你的链接。从中我发现并经历了,这似乎是我感兴趣的。谢谢!很少有链接:)

Clang 叮当声教程编译错误

就像每一个新人一样,我正在尝试使用这里提供的教程,用叮当声构建一些东西: 我可以使用以下命令生成第一个和第二个教程: export CLANG_LIBS="-lclangTooling -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangStaticAnalyzerFrontend -lclangStaticAn

Clang 未能与忍者建立叮当声

当我试图与忍者建立叮当声时出现了一个问题。我从链接中一个接一个地执行了所有命令: 但是在运行了《忍者》之后,教程上说“好吧,现在我们来建叮当!”构建一半的对象需要2个小时,之后操作系统卡住了,我甚至无法移动光标。我在笔记本电脑和PC上都做了这项工作,但结果是一样的。吸引我注意的是,文件夹的大小太大了(18.3GB) 有什么办法解决这个问题吗?我已经回答了关于StackOverflow的相同问题。在提出同样的问题之前,我将建议今后进行更深入的研究 在此处包括信息,以防链接丢失。正在发生的事情是,

当clang没有';是否不支持OpenMP(Mac OSX)?

我正在尝试使用pip在OSX 10.12.5上安装rpy2。我得到这个错误: clang: error: unsupported option '-fopenmp' clang: error: unsupported option '-fopenmp' error: command '/usr/bin/clang' failed with exit status 1 据我所知,这是因为我的clang版本不支持OpenMP。我使用自制软件安装了LLVM 8.1.0(clang 802.0.42)

如何使用clang生成.map文件?

生成.map文件的in-Clang的等效标志是什么?这是我能想到的最接近Clang和链接器映射文件的标志 -Wl,-map,output.map到目前为止,clang不支持此标志。那么无法使用clang生成.map文件吗?

Clang 升华文本3上的升华

有人能在ST3上使用叮当吗。。。我有各种各样的错误。。。我在代码中做了一些更改以支持Python 3,但仍然无法使用 在这些改变之后,我已经到了一个阶段,我得到了以下错误 File "C:\Users\Nikhil\AppData\Roaming\Sublime Text 3\Packages\SublimeClan\clang \cindex.py", line 86, in get_cindex_library return cdll.LoadLibrary('li

如何使用LLVM/Clang+GCC为MSP430定义中断服务例程?

使用GCC编译时,ISR是通过使用中断属性标记来定义的,中断属性的向量号在msp430fr*.h标题中定义,该标题随TI发布的GCC工具链一起发布: __attribute__ ((interrupt(TIMER2_A1_VECTOR))) void TIMER2_A1_ISR (void) { ... } 但是,在使用LLVM/Clang编译以及使用GCC组装和链接时 clang -emit-llvm -c -MD --target=msp430 -D__MSP430FR5969__ -no

libclangtokens

我在哪里可以找到libclang中的令牌类型 例如,我知道存在以下令牌类型: eof,r\u paren,l\u paren,r\u brace,l\u brace 我在哪里可以找到其余的代币种类 谢谢。在libclang中,令牌类型有CXToken\u标点符号,CXToken\u关键字,CXToken\u标识符,CXToken\u文字,以及CXToken\u注释。() 在clang中,在定义#define TOK(X)X后,可以通过预处理文件找到令牌种类列表。这样做会给我以下列表: 未知, e

运行clang libtooling时出现分段故障(堆芯转储)

我实现了一个简单的重构工具,它可以将函数名替换为用户特定的名称 当我在测试代码上运行该工具时(没有任何头文件),它工作得很好 但是,如果在测试代码中包含头文件, e、 g 我对此感到困惑,因为我只添加了一个“#include” 你能帮我检查一下故障信息吗? 提前谢谢 在分析stdio.h时,工具中应该有错误。快速技巧:你应该为你的代码编写一个带有必需func的假stdio.h,或者在这里提供关于你的代码的更多信息。在分析stdio.h时,你的工具应该有错误。快速技巧:您应该为代码编写一个带有必需

如何使用AST匹配器在Clang AST中查找BlockDecl节点?

我需要在块中查找自引用(目标C)。我使用了叮当作响的AST匹配器 查找我创建的所有自引用的匹配器如下所示: declRefExpr(to(varDecl(hasName("self"))) 现在我只需要将此匹配器应用于块。但我不知道怎么做。有人有什么想法吗?我已经通过以下匹配者解决了这个问题(在OCLint中): 最终我决定找到BlockExpr,而不是BlockDecl。因此,上面的规则在所有块表达式中查找自引用。 但我没有意识到在某些块中,self是有效的。例如,dispatch_once

如何使用clang工具仅解析用户定义的源文件

我正在写一个叮当作响的工具,但我对它还很陌生,所以我遇到了一个在文档中找不到的问题 我正在使用great Matchers API查找一些稍后要在AST中操作的节点。问题是,clang工具实际上会解析属于源文件的所有内容,包括iostream等头文件。 因为我的操作可能包括一些重构,所以我绝对不想触及解析器发现的每一件事情 现在我通过比较我匹配的节点的源文件和argv中的参数来处理这个问题,但是不用说,这感觉是错误的,因为它仍然解析所有的iostream代码-它只是在这样做时忽略了它。我简直不敢

Clang 为了构建hipSYCL,是否需要构建LLVM?

我正在运行Centos 7,并试图构建hipSYCL(请参阅) 问题是hipSYCL需要从LLVM构建中获得cmake信息(通过LLVM_DIR cmake变量)。 这对我来说是个问题,因为构建LLVM需要大量35Gb的库和EXE。我没有那么多多余的记忆 我确实在Centos 7上找到了llvm-toolset-8.0的在线版本并安装了它,但令我惊讶的是,llvm_DIR似乎不起作用,因为没有cmake文件(因为我没有在本地构建它) 那么,我的问题是,有没有一种方法可以使用预先构建的LLVM c

Clang/LLVM:Should-fbasic block sections=标签是否应与LTO一起使用?

我想在使用clang时同时使用-fbasic block sections=labels和LTO,但是似乎一旦启用LTO,该节就不会出现在结束二进制文件中 没有LTO: $ clang -fbasic-block-sections=labels world.c -o world $ readelf -S world | grep bb_addr_map [26] .llvm_bb_addr_map LOOS+0xfff4c08 0000000000000000 000030b3 对于

如何在windows命令提示符下使用clang格式

我有一个C项目,它没有使用任何IDE。我想格式化我的项目。我看到,叮当格式将自动格式化文件。但我看不到任何地方如何在windows上安装它并在命令提示符下使用它。有人有这方面的文件吗?还有比这更好的开源工具吗

有没有一种简单的方法可以将clang与OpenMPI结合使用?

OpenMPI使用他们的包装器编译器。在幕后,他们的包装器编译器mpiCC调用gcc(默认情况下?),并为要编译的MPI代码添加必要的标志。但是,其他编译器比gcc提供更多的描述性错误消息(例如,它也与gcc兼容)。所以,我希望能够将clang与OpenMPI结合使用 我试过: 1) 正在查找用于指定编译器的mpiCC选项,但 mpiCC --help 只需弹出g++帮助页面 2) 使用--showme:compile选项 mpiCC --showme:compile ./test-boost

使用CCMAKE将Clang设置为自己的编译器后,忍者出错

我一直按照上面的说明使用忍者来设置叮当声 一切都很顺利,直到我按照网页上的说明使用ccmake../llvm将Clang设置为自己的编译器(我在$TARGETFOLDER/Clang llvm/build/bin/Clang++中将CMAKE\u-CXX\u编译器设置为我最近编译的Clang++二进制文件) 之后,当我键入忍者时,会显示以下错误: $ ccmake ../llvm/ $ ninja [50/2561] Building C object lib/Support/CMakeFil

使用clang编译库(来自LLVM字节码)

我在foo.c中有一个库foo: int foo() { return 0; } 我想编译成一个静态对象foo.o。当我像下面这样直接做的时候,这是有效的 clang -c foo.c -o foo.o 但是,我想通过llvm字节码: clang -emit-llvm -c foo.c # Compile to LLVM byte code clang foo.bc -o foo.o # Compile LLVM byte code to native 最后一个命令失败,并显示

上一页   1   2   3   4    5   6  ... 下一页 最后一页 共 18 页