问题标签 [llvm-clang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
849 浏览

c++ - LLVM:在 C++ 源代码中注入调试行

我已经下载了 LLVM 3.1 并成功构建了它。我的要求是在 C++ 源代码文件中添加一些调试行。我使用 CLANG 3.1 对模块进行了编码。但是 CLANG 报告了很多 gcc 没有的 AST 错误。请注意,我的代码使用 gcc 编译器编译得很好。此外,我的 C++ 程序有很多 #include 语句。LLVM 期望相同的路径在路径中可用,并在不同级别再次失败。

0 投票
1 回答
646 浏览

llvm - 程序中的加载指令数

如何通过 LLVM 计算一个简单的“hello world”程序的加载指令总数?

0 投票
1 回答
316 浏览

ios - LLVM Xcode 版本 4.6.1 (4H512) 的编译器错误

我们最近将 Xcode 升级到 4.6.1 时看到此错误。在此版本之前能够完美编译。对此消息有任何见解吗?似乎是 32/64 位问题?

从查看LLVM 补丁日志看来,这是 MachO 格式的不幸限制。

有什么见解吗?

0 投票
2 回答
2281 浏览

objective-c - 使用 ARC 的 Objective-C 命名约定和可能的警告

我有纯ARC编码的经验。作为编译器功能,它尊重 Objctive-C 方法系列,在需要时放置正确的保留/释放调用。

所有以,开头的方法alloc,并创建一个新对象。它们增加了保留计数。因此,当我不再需要它时,ARC 将释放任何指针(以及与之关联的对象)。mutableCopycopynew

我认为当我编写不遵循命名约定的方法时可能会出现问题。例如,如果我newCustomer在第一个版本中编写这样的方法返回一个自动释放的对象,而在第二个版本中没有,会发生什么?

特别是,我的问题如下(它们属于相同的推理):

  • 如果调用和被调用的代码都用 ARC 编译会发生什么?
  • (a)如果调用代码使用 ARC 编译,而被调用代码使用非 ARC 编译,会发生什么情况?
  • (b)如果调用代码使用非 ARC 编译,而被调用代码使用 ARC 编译,会发生什么情况?

如果答案显示了 ARC 如何在幕后工作( , 等),我们将不胜objc_release感激objc_retainAutoreleasedReturnValue

先感谢您。

0 投票
1 回答
1600 浏览

llvm - 为什么 libclang 不返回有意义的完成结果?

我正在尝试了解如何使用 libclang 完成代码。我看过“Thinking beyond the compiler”,也看过 c-index-test,我在这里找到了一个简单的示例程序

我编译了该程序并在这个示例文件上运行它,我将它制作成类似于视频中的那个:

如果我将程序指向 Node-> 之后的第一个不完整空间,它会吐出一些 C 关键字,但不会像视频所说的那样吐出 Next 或 Data。

如果我将它指向 sumLi 之后的空格,它会打印出相同的 C 关键字。如果我将 sumListNode 指向 sumLi 中具有“s”的列,我可以让它打印出 sumListNode,但即便如此,它也会将其分配为与其他关键字相同的优先级值,所以它实际上只是打印出我的所有内容可以放在那里而不是阅读光标下的内容并尝试做出明智的猜测。我只是抓住稻草,希望将光标放在片段的开头而不是结尾会有所帮助。

我已经学到了很多关于 libclang 可以给我的数据类型以及如何从 doxygen 以及在 c-index-test 中进行操作的知识,但我只是还没有学会如何让它给我相关数据,以便我可以处理一些事情。

0 投票
1 回答
1549 浏览

c++ - 铿锵编译器挂在windows上

我按照手册使用 VS9 构建了clang

它的构建没有错误。但是当我试图编译一些代码时 - 它挂起(不消耗周期,两个进程),主干和 3.2 版本:

怎么了?如何让它发挥作用?

编辑:

你能找到第二个进程的启动位置吗?它的标准输入是否重定向到管道?

第二个进程在这里执行,它是“clang.exe”:

编辑:

如果我运行:

或者直接从上面的clang输出命令行 - 我得到真正的编译错误(关于标题)。因此,参数解析/传递似乎有些问题。

0 投票
2 回答
3142 浏览

gcc - 创建共享库时出现 Clang 错误

我想在 MBP 上编译一个共享库,根据此处给出的建议,我已切换到clang(from gcc) 来创建共享库。我makefile的是:

我在这里所做的是: 1) 只编译TDS.c, TDSJac.c, ExtraRoutines.c, 和CalcVFC.c创建四个对应的目标文件。2)使用以下命令合并目标文件并创建共享库:

由于我对 clang 完全陌生,我不知道 Makefile 有什么问题。(如果我替换CC=clangCC=gcc,一切正常。)我搜索了互联网但没有成功。clang 的手册页没有提到共享库。我什至无法从 clang主页中得到任何东西。如果能帮助我解决这个问题,我们将不胜感激。

提前感谢您的帮助。

0 投票
1 回答
1209 浏览

llvm - 将自动工具软件构建到 LLVM 位码

我想使用自动工具构建系统将软件编译为 LLVM 位码;也就是说,我希望最后获得的可执行文件是 LLVM 位码,而不是实际的机器码。

(目标是能够在整个程序上运行 LLVM 位码分析工具。)

我已经尝试指定脚本CC="clang -emit-llvm -use-gold-plugins"和变体configure,但无济于事。总是有问题(例如,包构建.a静态库,链接器拒绝)。

在我看来,正确的做法是 LLVM 位码应该是交叉编译目标。设置--host=,但没有这样的标准目标(即使 Knuth 的 MMIX 有一个目标)。

到目前为止,我已经使用了 kludges,例如手动编译CC="clang -emit-llvm -use-gold-plugins"和运行链接线(使用llvm-ldor )。llvm-link这适用于简单的包,例如grep.

我想要一种健壮的方法,并且可以与大多数(如果不是全部)配置脚本一起使用,包括当有中间.a文件或中间目标时。

0 投票
2 回答
12438 浏览

ios - Clang(LLVM) compile with frameworks

I am using:

clang -ObjC -framework UIKit -o /var/compiled/c /Documents/Source/main.m

In OS X terminal. I also tried UIKit.framework, but I am getting

Fatal Error: 'UIKit/UIKit.h' not found

with both.

Any suggestions?

Thanks

0 投票
2 回答
505 浏览

c++ - const_iterator 错误的间接运算符

这段代码

在 Apple LLVM 编译器 4.2 中产生以下错误:

但是,如果我在 LLVM GCC 4.2 中编译此代码,它就可以正常工作。有任何想法吗?