谁能告诉我如何将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/