clang相关内容

使用 Clang 将 C++ 转换为 C 代码

我知道llvm可以用来把c++转成c代码.我想知道 clang 是否可以做同样的事情(看到 clang 是从 llvm 派生的). 那么我可以使用clang将c++代码转换成c代码吗? 如果你想知道我为什么要这样做,这是我的场景: PIC 是一家微控制器制造商,不生产 c++ 编译器,但为他们的大多数产品生产 c 编译器.我想用 c++ 编写,然后作为构建过程的一部分,将 c++ ..
发布时间:2022-01-19 12:43:46 C/C++开发

无法在 OS X 上安装 mysql gem

我在做一个 sudo gem 安装 mysql 在 OS X 上安装 mysql gem.这失败了,输出如下: 构建原生扩展.这可能需要一段时间... 错误:安装 mysql 时出错: 错误:构建 gem 原生扩展失败. /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby ext ..
发布时间:2022-01-18 17:42:01 数据库

LLVM &Clang 无法编译支持的拱门

在 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 ..
发布时间:2022-01-17 14:01:14 C/C++开发

有没有办法让 gcc 或 clang 对显式强制转换发出警告?

我要做的是在我拥有的一些源文件中找到从 double 类型或 float 类型到任何其他类型的所有显式转换.是否有内置的 gcc 方法可以做到这一点?语言是C.谢谢! 解决方案 由于强制转换是明确合法的,并且是执行奇怪转换的正确方法,gcc 不太可能包含警告它们的选项 相反,根据您的来源有多大,您可能能够侥幸逃脱: grep '\(double|float\)' * 为您提供所有 ..
发布时间:2022-01-17 08:50:45 其他开发

GNU99 和 C99 (Clang) 有什么区别?

我看到了编译器选项 GNU99 和 C99.他们有什么区别?有详细的文档吗?(Clang、Xcode、Mac OS X) 解决方案 各种标准模式的区别 clang 支持 -std 选项,它改变了 clang 使用的语言模式.C 支持的模式是 c89、gnu89、c94、c99、gnu99 和这些模式的各种别名.如果没有指定 -std 选项,clang 默认为 gnu99 模式. ..
发布时间:2022-01-17 08:43:50 其他开发

用于 iOS 开发的 LLVM 与 GCC

在最新的 iOS SDK 中,Apple 提供了三种编译器选项:GCC、LLVM with Clang 和 LLVM-GCC.我或多或少地了解这 3 个是什么意思,LLVM 和 Clang 是什么,等等.我不知道这对 iPhone 开发人员在实践中意味着什么.截至 2011 年 1 月,此时我应该使用哪一个?LLVM 是否足够成熟,以至于我可以安全地使用它而不会经常遇到错误?切换到 LLVM 还有 ..
发布时间:2022-01-17 08:31:14 移动开发

Clang vs GCC - 产生更快的二进制文件?

我目前正在使用 GCC,但我最近发现了 Clang,我正在考虑切换.但是,有一个决定因素 - 它生成的二进制文件的质量(速度、内存占用、可靠性) - 如果 gcc -O3 可以生成运行速度快 1% 的二进制文件,或者 Clang 二进制文件占用更多内存或只是由于编译器错误而失败,这是一个交易破坏者. 与 GCC 相比,Clang 拥有更好的编译速度和更低的编译时内存占用,但我对生成的已编译软 ..

获取 LLVM 值的原始变量名

llvm::User(例如指令)是 llvm::Value秒. mem2reg 传递之后,变量在 SSA 形式中,并且它们与原始源代码对应的名称丢失了.Value::getName() 只为某些东西设置;对于大多数作为中介的变量,它没有设置. instnamer 传递可以运行以提供所有变量名称,如 tmp1 和 tmp2,但这并不能捕获它们最初的位置来自.这是原始 C 代码旁边的一些 ..
发布时间:2022-01-17 08:21:33 其他开发

在 OSX 上安装 PyLucene JCC 时出错

我在 Mac OSX 上安装 PyLucene JCC 时遇到问题. 我从 apache lucene 站点下载了最新版本的 JCC,并按照说明使用命令安装它 python setup.py build 但我在安装时遇到以下错误 ld:内部错误:在 x86_64 架构的 symbolIndex(__ZN7JNIEnv_13CallIntMethodEP8_jobjectP10_jmet ..
发布时间:2022-01-15 13:25:15 Python

尝试在 Kivy Complete VM 上生成简单 apk 时出错

Windows 10 x64 VirtualBox 6.1 Kivy Complete VM 0.7 我正在尝试生成一个简单的 apk 文件,但它总是返回错误,我试图删除虚拟机并重新创建它,认为这是我之前完成的一些配置的结果.我是编程新手,在网上没有发现同样的错误,也不知道如何解决. “/home/kivy/Desktop/teste/main.py"中的代码: 从 kivy.a ..
发布时间:2022-01-15 09:43:53 其他开发

如何使用 cmake 测试预期会因异常而失败的进程?(例如,由于 clang 的地址清理程序导致的失败)

我有一些测试可以测试 clang 的地址清理程序是否捕获特定错误.(我想确保我对它可以捕获的错误类型的理解是正确的,并且未来的版本会继续捕获我期望它们捕获的错误类型.)这意味着我有几个测试失败了OTHER_FAULT,这似乎是 clang 的运行时报告错误的固定方式. 我已将这些测试的 WILL_FAIL 标志设置为 TRUE,但这似乎只是检查成功、无异常失败的返回值.如果进程因异常而终止, ..
发布时间:2022-01-14 18:09:07 其他开发

使用 clang 和 gfortran 编译

我正在尝试编译我最近开始工作的项目,并被要求在 clang 而不是 gcc 中编译代码.该项目有一个CMake文件,我尝试使用 cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../src 但是抛出了一个错误,我认为这是因为 clang 没有 Fortran 编译器,并且项目的一部分有 Fortran 代码.有没有办法让它 ..
发布时间:2022-01-14 10:16:19 C/C++开发

ARC 和桥接铸件

使用 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:// ..
发布时间:2022-01-11 20:15:42 其他开发

我可以使用什么预定义的宏来检测 clang?

我正在尝试检测用于编译我的源代码的编译器.我可以轻松找到预定义的宏来检查 MSVC 或 GCC(请参阅 http://predef.sourceforge.net/例如),但我找不到任何宏来检查铿锵声. 有人知道 clang 是否定义了像 __CLANG__ 这样的宏来了解当前正在编译我的代码的内容吗? 解决方案 使用 strings + grep 找到答案: $ 字符串/usr/ ..
发布时间:2022-01-11 19:44:16 其他开发

等同于其他编译器中的 MSVC 的 _countof?

是否有任何与 等效的内置函数_countof 由其他编译器提供,特别是 GCC 和 Clang?有没有非宏形式? 解决方案 我不知道有一个 GCC,但是 Linux 使用 GCC 的 __builtin_types_compatible_p 内置 使他们的 ARRAY_SIZE() 宏更安全(如果应用于指针会导致构建中断): /* &a[0] 降级为指针:与数组不同的类型 */#defi ..
发布时间:2022-01-11 19:25:39 其他开发