【发布时间】:2014-03-22 11:25:23
【问题描述】:
基于LLVM official page,可以进行安装时优化,根据我的理解,它首先在分发之前在构建机器上编译成字节码,然后在目标机器上编译,安装时将字节码转换为本机代码。
是否有关于此功能的真实示例?更具体地说,我想知道是否可以采用使用 autoconf 的任意开源 C/C++ 项目(即通常由 ./configure && make && make install 构建和安装),并且
- 在构建机器上,通过运行
./configure && make在一个特殊的 方式(例如设置一些环境变量,甚至修改 configure.ac 或其他一些 autoconf 文件),以便它生成 可执行文件和库作为字节码; - 我将构建树转移到目标机器,然后运行
make install以一种特殊的方式,使其像往常一样安装所有文件, 但将字节码转换为可执行文件和库的本机代码。
【问题讨论】:
-
这甚至无法开始工作,除非构建机器和目标机器是相同的操作系统、操作系统版本、ABI、库、头文件等,原因在其他问题以及一些 LLVMdev 中有详细说明邮件列表线程。
-
@delnan,我没有找到您提到的其他问题或 LLVMdev 邮件列表线程。您能否将链接粘贴到此处,以便我可以关注它?谢谢。
-
PNaCl 怎么样? developers.google.com/native-client/pnacl-preview - 它发送llvm bitcode到用户的浏览器,它会将bitcode重新编译为当前CPU的机器码?
-
我不知道使用 C++ 和 LLVM 的例子,但这就是 Android 的 ART 虚拟机的工作方式。当应用程序安装在手机上时,Java 字节码被编译为本机代码。相同的想法,但使用 Java / ART 而不是 C++ / LLVM。
标签: c++ llvm llvm-clang