我可以使用 LLVM(低级虚拟机)为哪些平台编译二进制文件?

2024-03-01

我对使用 LLVM 的 Clang 编译器感兴趣。 LLVM 声称是跨平台的,但尚不清楚可以针对哪些平台。我对此做了很多谷歌搜索,但似乎没有太多关于 LLVM 支持的平台的信息。我唯一发现的是"this" http://llvm.org/docs/GettingStarted.html#requirements这有点令人困惑。我不确定这是否意味着我可以使用 LLVM 为这些平台编译二进制文件,或者它是否只在这些平台(或两者)上运行。对 LLVM/Clang 编译器有更多了解的人能否告诉我可以使用 Clang 或任何其他 LLVM 前端来定位哪些平台?我想要具体信息(例如“它支持 Windows 32 位、Windows 64 位、Linux 32 位、Linux 64 位等)。谢谢!

EDIT:

好吧,我想我只是对 LLVM 到底是什么感到困惑。据我所知,LLVM 只是一个字节码解释器。由于 LLVM 是解释型的,因此 LLVM 二进制文件与可执行二进制文件相比要慢多少?那么如果性能很重要,LLVM 不是正确的选择吗?"Here" http://llvm.org/Features.html我找到了它支持的架构,但没有说明它支持哪些操作系统。如果我避免编写依赖于平台的代码,它是否可以在所有操作系统上运行?如果我能找到更多详细解释 LLVM 的文章,我会寻找更多。


已安装 llvm 的类型

llc -version

你会看到类似的东西

  Registered Targets:
    alpha   - Alpha [experimental]
    arm     - ARM
    bfin    - Analog Devices Blackfin [experimental]
    c       - C backend
    cellspu - STI CBEA Cell SPU [experimental]
    cpp     - C++ backend
    mblaze  - MBlaze
    mips    - Mips
    mipsel  - Mipsel
    msp430  - MSP430 [experimental]
    ppc32   - PowerPC 32
    ppc64   - PowerPC 64
    ptx32   - PTX (32-bit) [Experimental]
    ptx64   - PTX (64-bit) [Experimental]
    sparc   - Sparc
    sparcv9 - Sparc V9
    systemz - SystemZ
    thumb   - Thumb
    x86     - 32-bit X86: Pentium-Pro and above
    x86-64  - 64-bit X86: EM64T and AMD64
    xcore   - XCore

转至 github.com 并搜索 mbed_samples 以查看用于 ARM 交叉编译的 llvm 和 clang。在blinker03或04周围的某个地方是它的用武之地。LLVM对于任何平台都以相同的方式工作,llc步骤是你选择目标的地方,编译合并、优化等都是独立于平台的(例如你可以使用-m32)选择 int 大小)然后 llc 让您进入依赖于平台的汇编器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以使用 LLVM(低级虚拟机)为哪些平台编译二进制文件? 的相关文章

随机推荐

  • 有哪些可用于 gtk+ 开发的 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • MySQL 查询缓存:最大缓存大小限制为 128 MB?

    我的应用程序是数据库密集型的 因此我非常努力地确保应用程序和 MySQL 数据库尽可能高效地协同工作 目前 我正在调整 MySQL 查询缓存 使其符合服务器上运行的查询的特征 query cache size是可以存储在缓存中的最大数据量
  • openpyxl - 在现有合并单元格的 Excel 文件中添加新行

    Before https i stack imgur com 20JFY png After https i stack imgur com 9d7m6 png 所以 我试图在 Excel 表中添加 6 行 我用过 openpyxl wor
  • 如何在java或clojure中等待进程结束

    当我未启动的进程结束时 如何通知我 它们是恢复其退出代码和 或输出的方法吗 执行监视的进程将以 root 管理员身份运行 您可以通过调用列出所有当前进程并解析输出的 shell 命令来检查进程当前是否正在从 java 运行 在linux u
  • 如何使用 jQuery 销毁内联 CKEditor

    假设这是我的代码 div class editor div This is working for me editor click function this ckeditor This is the problem editor on f
  • 在 C# 源代码中打破长字符串的最佳方法

    我想知道在 C 源代码中打破长字符串的 最佳实践 是什么 是这个字符串吗 string1 string2 string3 在编译期间或运行时连接 它是在编译时完成的 这与 string1string2string3 完全相同 假设您有 st
  • Django 相当于每个用户的最新条目

    我很惊讶这个问题没有被提出 在网上找不到太多 Using Entry objects latest created at 我可以恢复所有 Entry 对象的最新条目 但是如果我想要每个用户的最新条目 这类似于 SQL 最新记录查询 但是我如
  • 执行内联powershell脚本

    我正在尝试从任务计划程序调用内联 powershell 脚本 以便在触发特定事件时发送电子邮件 我无法在任务计划程序操作窗口中使用本机 发送电子邮件 操作 因为 SMTP 服务器需要 SSL 并且无法在操作窗口中指定此操作 因此 我希望 启
  • 同步集合线程安全

    我有 System Collections Generic SynchronizedCollection 共享集合 我们的代码使用 Net 4 0任务库来跨越线程并将同步集合传递给线程 到目前为止 线程尚未向集合中添加或删除项目 但是新的要
  • Java 中什么时候方法调用可以更改参数,什么时候不可以更改参数? [复制]

    这个问题在这里已经有答案了 这是在java中 我尝试在这里寻找 谷歌搜索这个问题的答案 但找不到足够的答案 所以如果这是重复的 我深表歉意 我对更改您输入的参数的方法背后的规则感到困惑 例如 考虑以下示例 public static voi
  • logback每小时回滚时删除MaxHistory之前的日志

    我使用下面的附加程序 我可以看到回滚每小时发生一次 但我提到了
  • 如何测试包含 gets.chomp 的函数?

    我有一个使用 gets chomp 的简单函数 如下所示 def welcome user puts Welcome What would you like to do action gets chomp end 我想用它来测试它ruby是
  • RAND_MAX 宏:有符号还是无符号?

    我查阅了 C 标准 从 1999 年开始 它只说RAND MAX应该至少为 32767 但没有说明该宏是否应扩展为有符号整数或无符号整数 单一 UNIX 规范 link 1 http pubs opengroup org onlinepub
  • fileprivate 和 private 扩展名之间的区别?

    斯威夫特3 0 我知道fileprivate访问级别修饰符限制对声明它的源文件的函数 属性的使用 并且private 仅限于声明的词法范围 但似乎这条规则不适用于延期 例如 此代码有效 class Foo fileprivate exten
  • 如何从 GoDaddy 导入证书进行 Java 代码签名? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要能够使用 CA 的证书对 jar 文件进行签名 我按照 GoDaddy 文档中有关如何执行此操作
  • oop 中具有状态和行为的对象

    我不断听到术语 对象具有行为和状态 或只是其中之一 但有什么区别或者它意味着什么 如果有人能举一个例子 我将非常感激 灯是一个物体 lamp 中的 状态 开和关 lamp 中的 行为 打开和关闭 在编程中 您在 字段 中声明状态 在 方法
  • 加载 gif 图像在 IE 和 Chrome 中不显示

    我正在使用 JQuery ajax 调用向服务器发送同步调用 并希望显示当时的加载图像 但是加载图像在 Firefox 中可见 但在 IE 和 chrome 中不可见 当我调试时 我发现在 IE 中 当我们调用 java 脚本时 它会停止在
  • MATLAB sgolay(k, f) 的 Python 等效项是什么?

    我在 MATLAB 中有一个函数 b g sgolay k f 它输出一个 f x f 矩阵 当我在 Python 中对相同的 k 和 f 值运行相同的操作时 使用 scipy signal savgol coeffs f k 它输出一个完
  • 在 Bitbucket 中创建拉取请求:错误“不相关的分支”

    我有一个小团队在单个存储库上工作 我要求每个队友创建自己的分支并在该分支上工作 他们所有人都克隆了存储库 然后执行了以下命令 git checkout b BitPankaj BitPankaj是插图分支名称 他们开始在这个分支上工作并通过
  • 我可以使用 LLVM(低级虚拟机)为哪些平台编译二进制文件?

    我对使用 LLVM 的 Clang 编译器感兴趣 LLVM 声称是跨平台的 但尚不清楚可以针对哪些平台 我对此做了很多谷歌搜索 但似乎没有太多关于 LLVM 支持的平台的信息 我唯一发现的是 this http llvm org docs