clang相关内容
下面的代码可以在 G++ 4.7.2 中正常编译: #include std::tupleX; 但是,使用 clang++ 3.2,会产生以下错误: 错误:数组初始化器必须是初始化器列表. 如果我从元组声明中删除 float 类型,错误就会消失.上面的元组声明有效吗? ($CXX -std=c++11 -c file.cpp)
..
我有以下代码片段将 nullptr 分配给 bool 类型. #include 主函数(){布尔 b = nullptr;std::cout
..
我知道llvm可以用来把c++转成c代码.我想知道 clang 是否可以做同样的事情(看到 clang 是从 llvm 派生的). 那么我可以使用clang将c++代码转换成c代码吗? 如果你想知道我为什么要这样做,这是我的场景: PIC 是一家微控制器制造商,不生产 c++ 编译器,但为他们的大多数产品生产 c 编译器.我想用 c++ 编写,然后作为构建过程的一部分,将 c++
..
我阅读了 C++ 入门第 5 版,其中提到了最新的标准支持列表初始化程序. 我的测试代码是这样的: #include #include #include #include 使用标准::cin;使用 std::cout;使用 std::endl;使用标准::字符串;使用标准::向量;使用 std::ispunct;int main(int
..
我在做一个 sudo gem 安装 mysql 在 OS X 上安装 mysql gem.这失败了,输出如下: 构建原生扩展.这可能需要一段时间... 错误:安装 mysql 时出错: 错误:构建 gem 原生扩展失败. /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby ext
..
在 Ubuntu 64 位下我得到了 llc --versionLLVM (http://llvm.org/):LLVM 3.1 版使用断言优化构建.建于 2012 年 10 月 15 日 (18:15:59).默认目标:x86_64-pc-linux-gnu主机 CPU:btver1注册目标:手臂 - 手臂米普斯-米普斯mips64 - Mips64 [实验性]mips64el - Mips6
..
我要做的是在我拥有的一些源文件中找到从 double 类型或 float 类型到任何其他类型的所有显式转换.是否有内置的 gcc 方法可以做到这一点?语言是C.谢谢! 解决方案 由于强制转换是明确合法的,并且是执行奇怪转换的正确方法,gcc 不太可能包含警告它们的选项 相反,根据您的来源有多大,您可能能够侥幸逃脱: grep '\(double|float\)' * 为您提供所有
..
我看到了编译器选项 GNU99 和 C99.他们有什么区别?有详细的文档吗?(Clang、Xcode、Mac OS X) 解决方案 各种标准模式的区别 clang 支持 -std 选项,它改变了 clang 使用的语言模式.C 支持的模式是 c89、gnu89、c94、c99、gnu99 和这些模式的各种别名.如果没有指定 -std 选项,clang 默认为 gnu99 模式.
..
在最新的 iOS SDK 中,Apple 提供了三种编译器选项:GCC、LLVM with Clang 和 LLVM-GCC.我或多或少地了解这 3 个是什么意思,LLVM 和 Clang 是什么,等等.我不知道这对 iPhone 开发人员在实践中意味着什么.截至 2011 年 1 月,此时我应该使用哪一个?LLVM 是否足够成熟,以至于我可以安全地使用它而不会经常遇到错误?切换到 LLVM 还有
..
我目前正在使用 GCC,但我最近发现了 Clang,我正在考虑切换.但是,有一个决定因素 - 它生成的二进制文件的质量(速度、内存占用、可靠性) - 如果 gcc -O3 可以生成运行速度快 1% 的二进制文件,或者 Clang 二进制文件占用更多内存或只是由于编译器错误而失败,这是一个交易破坏者. 与 GCC 相比,Clang 拥有更好的编译速度和更低的编译时内存占用,但我对生成的已编译软
..
llvm::User(例如指令)是 llvm::Value秒. mem2reg 传递之后,变量在 SSA 形式中,并且它们与原始源代码对应的名称丢失了.Value::getName() 只为某些东西设置;对于大多数作为中介的变量,它没有设置. instnamer 传递可以运行以提供所有变量名称,如 tmp1 和 tmp2,但这并不能捕获它们最初的位置来自.这是原始 C 代码旁边的一些
..
我在 Mac OSX 上安装 PyLucene JCC 时遇到问题. 我从 apache lucene 站点下载了最新版本的 JCC,并按照说明使用命令安装它 python setup.py build 但我在安装时遇到以下错误 ld:内部错误:在 x86_64 架构的 symbolIndex(__ZN7JNIEnv_13CallIntMethodEP8_jobjectP10_jmet
..
Windows 10 x64 VirtualBox 6.1 Kivy Complete VM 0.7 我正在尝试生成一个简单的 apk 文件,但它总是返回错误,我试图删除虚拟机并重新创建它,认为这是我之前完成的一些配置的结果.我是编程新手,在网上没有发现同样的错误,也不知道如何解决. “/home/kivy/Desktop/teste/main.py"中的代码: 从 kivy.a
..
我有一些测试可以测试 clang 的地址清理程序是否捕获特定错误.(我想确保我对它可以捕获的错误类型的理解是正确的,并且未来的版本会继续捕获我期望它们捕获的错误类型.)这意味着我有几个测试失败了OTHER_FAULT,这似乎是 clang 的运行时报告错误的固定方式. 我已将这些测试的 WILL_FAIL 标志设置为 TRUE,但这似乎只是检查成功、无异常失败的返回值.如果进程因异常而终止,
..
我正在尝试编译我最近开始工作的项目,并被要求在 clang 而不是 gcc 中编译代码.该项目有一个CMake文件,我尝试使用 cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../src 但是抛出了一个错误,我认为这是因为 clang 没有 Fortran 编译器,并且项目的一部分有 Fortran 代码.有没有办法让它
..
我想在 CentOS 7 上使用带有 clang/clang++ 的 C++11 或 C++14.如何构建这个构建环境? 解决方案 本文讲授如何在 CentOS 7 上搭建 C++11 构建环境:RHEL 的 EPEL repo 提供 Clang 包,但没有 C++ 库包.所以,这些部分手工制作有点麻烦.为 Clang 定制的 C++ 库是 libc++ (libcxx) [1].然后,l
..
使用 ARC,我不能再将 CGColorRef 转换为 id.我了解到我需要进行桥接演员表.根据 clang 文档: 桥接演员表是使用以下三个关键字之一注释的 C 风格演员表: (__bridge T) op 将操作数转换为目标类型 T.如果 T是一个可保留的对象指针类型,那么 op 必须有一个不可保留的指针类型.如果 T 是不可保留的指针类型,那么 op 必须有一个可保留的对象指针类
..
我想知道是否可以“嵌套"可变参数宏调用.我只真正关心 GCC 和 Clang.我的宏定义如下所示: /*** @brief 调用实例方法.*/#define $(obj, 方法, ...) \({ \typeof(obj) _obj = obj;\_obj->接口->方法(_obj, ## __VA_ARGS__);\}) 我使用它来方便地在我的 OO 框架中调用“实例方法"(https://
..
我正在尝试检测用于编译我的源代码的编译器.我可以轻松找到预定义的宏来检查 MSVC 或 GCC(请参阅 http://predef.sourceforge.net/例如),但我找不到任何宏来检查铿锵声. 有人知道 clang 是否定义了像 __CLANG__ 这样的宏来了解当前正在编译我的代码的内容吗? 解决方案 使用 strings + grep 找到答案: $ 字符串/usr/
..
是否有任何与 等效的内置函数_countof 由其他编译器提供,特别是 GCC 和 Clang?有没有非宏形式? 解决方案 我不知道有一个 GCC,但是 Linux 使用 GCC 的 __builtin_types_compatible_p 内置 使他们的 ARRAY_SIZE() 宏更安全(如果应用于指针会导致构建中断): /* &a[0] 降级为指针:与数组不同的类型 */#defi
..