clang相关内容
据我了解,以下程序应该可以在C++20模式下运行: #include struct B{ int a0, a1; }; int main() { std::vector bs; bs.emplace_back( 0, 0 ); } 在Visual Studio2019和GCC 11中确实是这样,但在clang 12中不是,这会产生错误:
..
我有一个这样的项目: |--CMakeLists.txt(1) |--File1.cpp -W -W-all |--Folder1 |--CMakeLists.txt(2) |--File2.cpp -W -W-all -fno-rtti 正如您在上面看到的,File2.cpp需要用-fno-rtti编译,而其他文件应该用rtti编译。之所以会发生这种情况,是因为我在项目
..
我的Mac上有clang 13.0.0。我正在尝试使用命令 编译一些.cpp文件 g++ file.cpp -o file 但我收到此警告消息: file.cpp:23:26: warning: range-based for loop is a C++11 extension [-Wc++11-extensions] for (const double &e : times
..
我正在尝试用Cython同时编译C和C++源代码。这是我的当前设置: -setup.py from distutils.core import setup from Cython.Build import cythonize from distutils.extension import Extension import os language = "c++" extra_compi
..
我应该使用 #include 调用哪个头文件才能使用 PATH_MAX 作为 int 来调整字符串大小? 我希望能够声明: char *current_path[PATH_MAX]; 但是当我这样做时,我的编译器(Linux 上的 Clang/LLVM)会发出以下错误: recursive_find6.c:29:20:错误:使用未声明的标识符“PATH_MAX"字符 *current_
..
我的一个(嵌入式)目标只有一个 C89 编译器. 我正在从事一个针对多个设备的(爱好)项目. 有没有办法将 C11 代码库编译(转译?)成 C89? (否则我将不得不像 1989 年那样编写代码.) 解决方案 不,我不认为所有 C11 都有可能.C11 具有 C89 或 C99 中根本不存在的特性:_Generic、_Atomic、_Thread、_Alignof,定义明
..
..
我有这样的代码: $ cat test.c#include 类型定义结构{常量 int x;} SX;静态 SX mksx(void){返回 (SX) { .x = 10 };}无效 fn(无效){SX SX;而((sx = mksx()).x != 20){printf("愚蠢的代码!");}} 以及关于其正确性的2个意见: $ for i in gcc clang;做
..
我知道从 char ** 到 const char ** 的隐式转换无法完成以及为什么,以及到 char *const *有效.请参阅底部的解释链接. 除了一件特定的事情之外,这一切都是有意义的.所以我有以下代码: #include 空白打印(常量字符*常量*参数){printf("%s\n", 参数[0]);}整数主要(int argc,char **argv){打印(
..
过去,我使用 gcc 的 C99 风格的复合文字扩展C++ 在代码中编码嵌套的常量数据结构.这是一个例子: #include 使用命名空间标准;结构树{常量字符*名称;常量树*左;常量树*对;};常量树 *常量树 = (树 []) {"top",//名称(树[]) {“剩下",0,0},(树[]) {“对",0,0}};静态无效转储(常量树*树){如果(!树){cout 左)
..
我为 Clang 使用哪个链接器? 如果我使用 Clang 或 GNU 链接器(ld) 作为链接器,我得到了大量的错误,就好像我没有链接到标准库一样. g++ $(OBJS) -o $(BINDIR)/obtap 看来我必须使用 g++ 来链接我的 Clang 对象. 解决方案 我运行的是 'clang' 而不是 'clang++',这意味着它没有链接 C++ 标准库.
..
请注意,我的问题不是:我如何告诉我的编译器在开启分析的情况下进行编译. 我想配置我的编译过程.对于每个文件,我想知道程序的每一行花费了多少时间. 我正在处理一个项目,有些文件的编译时间很长,我正在尝试找出原因. 有没有办法用 g++ 或 llvm-clang 做到这一点? 谢谢! -v -ftime-report 的输出(什么意思)? 下面是“解析器"还是“扩展
..
我正在从 g++ 切换到 clang 但是,在 g++ 中,我有 -pthread 标志,clang 似乎无法识别. clang 中的等价物是什么? 编辑:我的 clang 版本是 2010 年 3 月 5 日从 svn 提取的. 解决方案 Clang 支持 -pthread.可能是最新版本,因此请更新并重试.
..
尝试在不同的编译器上编译以下代码会给我两个不同的结果: 结构 S{};结构 T{S S;};int main(){} 如您所见,在 T 内部,我有一个与之前定义的类 S 同名的对象. 在 GCC 4.7.2 上,我收到以下与 SS; 声明有关的错误T: 错误:“S T::S"的声明 [-fpermissive] 错误:从 'struct S' [-fpermissive] 更改
..
可能重复: 我可以在 Xcode 中使用 C++11 吗? 似乎 xcode 4 包含旧版本的 clang 和 gcc.我可以升级 gcc 或 clang 并将它们与 xcode 4 一起使用吗?我想使用 gcc >= 4.6 或最新的 clang. 我的主要目标是在 mac osx lion 上编程 C++ 时,能够尽可能多地使用 C++11 中的新功能,因此如果需要,放弃 xco
..
我有以下结构的代码(这在现实中当然要复杂得多,尤其是“Base"是一个三行代码,但我试图抓住它的要点): 模板A类{};模板B类{上市:B(){};};模板C类:公共B>{上市:使用 Base = B>;使用 Base::B;};静态常量 CC{}; 代码通过 g++ 编译良好 g++ -c test.cpp -std=c++1
..
考虑以下程序: #include 枚举类虚拟{};模板using EnableIf = typename std::enable_if::type;模板using DisableIf = typename std::enable_if::type;模板structdependent_true_typ
..
我以前在命令行中使用过 Clang 静态分析器.我想通过 Build & 尝试 Xcode 的内置版本分析.即使我专门为我的代码准备了 Clang 总是能够指出的非常明显的问题,我也从未得到任何负面结果: //过度释放一个对象:【标签发布】;【标签发布】;//未初始化的变量,分配但不释放对象NSString* 字符串;整数;CCLabel* newLabel = [[CCLabel alloc]
..
在使用 gcc 或 Clang 编译 C 源代码时,我总是使用 -g 标志为 gdb 生成调试信息. gcc -g -o helloworld helloworld.c 我注意到有些人推荐-g3.-g 和 -g3 标志之间有什么区别?-g和-ggdb还有区别吗? 解决方案 来自 文档: -g 以操作系统的本机格式(stabs、COFF、XCOFF 或 DWARF 2
..
(前言:我对 C/C++ 还很陌生,我真的不知道在本机代码中调试实际上是如何工作的.) 一些消息来源说 gdb 和 lldb 可以调试 任何编译为机器码.其他人说要使用 gdb 进行调试,您必须在 gcc 使用 -g 标志.gcc 本身的文档表明这是可选的,事实上如果您使用它,它可能会导致调试器出现问题 gdb.Clang 还有一个 -g 标志,文档基本上只是说“生成调试信息". 那么
..