如何将C++编译成可移植的LLVM代码

How to compile C++ into portable LLVM code

本文关键字:可移植 LLVM 代码 编译 C++      更新时间:2023-10-16

我在不同的架构上编译LLVM代码时遇到了问题。到目前为止,我无法解决的主要问题是不同的指针大小。

Clang 始终根据目标计算机上的实际指针大小优化sizeof(void*)

是否真的可以将C++编译为可移植的LLVM代码,或者这只是一种营销技巧。

LLVM 位码并不意味着跨架构可移植。它可以在理论上,但大多数情况下不是。IIRC的这种误解是LLVM不再代表"低级虚拟机"的原因。

Google的原生客户端通过为所有平台使用相同的目标ABI,然后将该ABI转换为底层平台ABI来实现可移植性。

这是一个常见问题解答:http://llvm.org/docs/FAQ.html#can-i-compile-c-or-c-code-to-platform-independent-llvm-bitcode 。除此之外,Magnus Hoff对PNaCl和emscripten的指示是正确的。