草庐IT

clang-instrumented

全部标签

c++ - 在 ubuntu 12.04 上设置 Xerces 以与 cmake 和 clang 一起使用

我想在我的项目中使用Xerces,我在cmake和clang的帮助下编译了它。我所做的是:下载源将其解压缩到名为“xerces-c-3.1.1”的文件夹cd进入那个文件夹./configuremakemakeinstall然后我写了LINK_DIRECTORIES(/usr/local/lib)进入我的CMakeLists.txt和#include进入我的main.cpp。它编译正常,但链接不起作用。我得到以下结果:LinkingCXXexecutableDG5_RECMakeFiles/DG5_RE.dir/main.cpp.o:Infunction`xercesc_3_1::XML

c++ - 使用默认初始化的 Clang 编译错误

这个问题在这里已经有了答案:DoIreallyneedtoimplementuser-providedconstructorforconstobjects?(4个答案)关闭7年前。考虑以下示例:#include#includestructA{//A()=default;//doesneithercompilewith,norwithoutthisline//A(){};//doescompilewiththislineintsomeVal{123};voidfoobar(int){};};intmain(){constAa;std::cout::valueSeeLiveexample这

c++ - sscanf 中 uint16_t 的正确且可移植的 (Clang/GCC) 修饰符是什么?

当我尝试编译这段代码时收到一条警告消息sscanf(value,"%h"PRIu16"B",&packet_size)使用Clang600.0.57(OSX)。warning:formatspecifiestype'unsignedchar*'buttheargumenthastype'uint16_t*'(aka'unsignedshort*')[-Wformat]if(sscanf(value,"%h"PRIu16"B",&packet_size)==1){~~~~^~~~~~~~~~~~但是如果我删除修饰符“h”,那么我会在GCC4.8.3(ScientificLinux7)中收

c++ - 为什么下面的代码不能用 gcc 编译但用 clang 编译得很好

下面的代码可以用clang编译,但不能用gcc编译,请问这是gcc中的错误吗?它只是一个包含unique_ptrvector和std::function作为成员的类,当我创建此类的vector时,我不能对此说保留或调整大小。push_back与std::move一起工作正常,而这只发生在gcc而不是clang上。#include#include#include#include#include#includeusingnamespacestd;classABC{public:ABC(){}private:std::vector>up;std::functionfunc;};intmain

c++ - 为什么 clang++ 和 gcc/g++ 生成不同链接的可执行文件

当使用g++和clang++进行编译和链接时,期望生成的可执行文件的链接与它们的链接相同。然而,在某些情况下,尽管传入的参数相同,但clang++可执行文件似乎链接到比g++更多的库。这会导致功能差异,尤其是对于在加载和卸载时自动执行的动态链接库。为什么会这样? 最佳答案 事实证明,gcc在ubuntu--as-needed中默认启用了一项功能,这会导致gcc有效地忽略任何在链接项链中未引用其符号的库这可以在gcc中使用--no-as-needed标志禁用。或者,您可以发出-Wl,--as-needed作为clang++的第一个选项

c++ - 修改嵌套lambda中捕获的参数 : gcc vs clang?

从clang切换到gcc时,我遇到了一个奇怪的行为。clang编译成功,gcc报错。这是重现该行为的最小示例。我已经尝试使用c++14和c++17以及多个clang和gcc版本。谁在这里,clang还是gcc?structA{intvalue;};automakeCallback(constA&a){autocallback=[aCopy=a](inti){[aCopy,i]()mutable{aCopy.value=i;}();};returncallback;}编辑:将外部lambda更改为mutable,解决了gcc上的问题。 最佳答案

c++ - llvm clang 2.6 : "not using the clang compiler for C++ inputs "

LLVM2.6+clang。尝试编译C++文件并得到:clang:warning:notusingtheclangcompilerforC++inputs如何在C++模式下启动clang? 最佳答案 我会得到中继代码。自2.6以来,C++支持有了很大改进。tools/clang/tools/driver中的clang驱动程序Makefile使用CLANG_IS_PRODUCTION定义来控制C++是打开还是关闭。CLANG_IS_PRODUCTION表示C++关闭。主干构建的默认值不是CLANG_IS_PRODUCTION(即开发构

c++ - clang 不知道 std::atomic_bool,但 XCode 知道

我正在尝试编译声明std::atomic_bool类型变量的C++11代码。这是在带有clang的MacOS10.8.2上:clang--versionAppleclangversion4.1(tags/Apple/clang-421.11.66)(basedonLLVM3.1svn)Target:x86_64-apple-darwin12.2.0Threadmodel:posixclang提示std::atomic_bool:clang++-c-stdlib=libc++-msse4-std=c++11-Wno-unused-parameter-I.-oquery.oquery.cp

c++ - Visual Studio 2012 + qt + clang,可以吗?

是否真的可以使用VisualStudio作为IDE,使用Qt作为框架库,使用clang作为内部编译器?我不知道这是否真的可行,但这将确保我拥有最好的IDE、最好的编译器和最好的GUI框架 最佳答案 这是可能的。用于集成Qt的VisualStudio插件:http://qt-project.org/forums/viewthread/23169允许使用ClangC/C++编译器的VisualStudio插件:https://github.com/ishani/ClangVSx 关于c++-

c++ - 为什么 clang 将其解析为用户定义的文字?

我有一些正在维护的代码,我已经开始在clang3.3下编译这些代码。使用“-std=c++11”编译时,clang会生成错误(如下所示)。我已将有问题的代码提炼为以下内容:#include#defineDBG_PRT(__format,...)\printf("%s:%d:%s:"__format,__FILE__,\__LINE__,__FUNCTION__,##__VA_ARGS__)intmain(){DBG_PRT("%s\n","Hi");}这是clang的输出:test.cpp:10:5:error:nomatchingliteraloperatorforcallto'op