c - 如何自托管 Clang?

标签 c clang llvm llvm-clang emscripten

谁能告诉我如何将Clang编译器编译成LLVM字节码(即self-host Clang)?我想这样做的原因是我可以获取生成的 LLVM 字节码,然后使用 Emscripten 生成 C 到 Javascript 的编译器。

最佳答案

您可以使用 -emit-llvm 命令行标志以及 -c 标志将 clang 输出到 LLVM 字节码。 (如果你使用 -S 标志而不是 -c,你会得到 LLVM 字节码的文本表示。)你不需要将 clang 编译成 LLVM 字节码那个工作。

如果您想尝试在浏览器中运行 clang 本身,那么您需要将所有 clang 编译成 LLVM 字节码,然后使用 llvm-link 将目标文件链接在一起。然后你需要弄清楚如何让编译后的编译器访问它需要的系统头文件。我不知道是否有所有这些的构建选项,但我从未在 ./configure 选项中看到任何东西,所以我怀疑没有。但它可能存在。

关于c - 如何自托管 Clang?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25715787/

相关文章:

xcode - 如何将来自 clang 静态代码分析的警告视为 Xcode 3 中的错误?

math - 如何在LLVM位码中实现floor、ceil和round?

c - 尝试运行程序在 C 中查找给定范围内的素数时出错

c - Linux 内核模块中的 raise(SIGTRAP) 相当于什么?

我可以禁用或忽略 Apple 添加到 C 标准头文件吗?

c - 为什么 gcc 和 clang 不警告写入地址 0?

c++ - 如何使用 Clang 获取 C/C++ 程序的所有全局声明列表?

c++ - 使用 clang++ 3.1 构建 Boost 1.50.0

C 预处理器删除尾随逗号

c - 为什么通过直接函数调用替换变量时会得到不同的结果?