如何将C++编译成可移植的LLVM代码
How to compile C++ into portable LLVM code
我在不同的架构上编译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的指示是正确的。
相关文章:
- C++Union/Struct位域的实现和可移植性
- 具有Qt事件循环的可移植通用共享库设置
- 没有执行策略的 std::transform_reduce 是可移植的吗?
- 如何在 c++ 中正确指定 #include 路径以使程序可移植
- 创建异构顶点数据数组的可移植方法
- FlatBuffers/Protobuf 中是否有支持任意 24 位有符号整数定义的可移植二进制序列化架构?
- 静态库可移植性
- 从非类型模板参数声明 constexpr 数组的可移植方法
- C++:Unicode 字符串文字的可移植性
- 如何使Visual Studio 2017 C++项目在计算机之间更具可移植性
- 尝试将 sfml 和 c++ 与 Windows 10 上的可移植 vscode 链接起来
- 在C++中获取命名空间名称的任何可移植技巧
- STR这个实现是否安全且可移植?
- 编写 std::copysign 的可移植 SSE/AVX 版本
- 是可移植的包装结构
- 将参数推送到调用堆栈 (C++) 的可移植方法
- 在为视频游戏实施基本的二进制序列化时,请担心可移植性
- 如何以可移植方式删除名称为 wchar_t 类型的文件C++
- Xcode 8.3.2 中的错误警告:文件的非可移植路径 - 指定的路径与磁盘上的文件名不同
- 如何将C++编译成可移植的LLVM代码