【问题标题】:Correct llvm target triple for iPhone simulatoriPhone模拟器的正确llvm目标三重奏
【发布时间】:2011-05-31 09:54:37
【问题描述】:

我编写了一小段代码来生成一个包含一些全局变量的 LLVM 模块。我正在使用 LLVM 汇编程序将模块转换为 LLVM 汇编代码,然后转换为本机二进制文件,然后再将其链接到其他库以生成最终的二进制文件,即 iPhone 应用程序。当我为设备构建时一切正常,但是当我为模拟器构建时,从 LLVM 程序集转换为机器代码时出现以下错误:

file.asm:1:Unknown pseudo-op: .syntax
file.asm:1:Rest of line ignored. 1st junk character valued 117 (u).

我怀疑目标三元组对于模拟器架构不正确。我将armv6-apple-darwin9 用于设备,i386-apple-darwin10 用于模拟器。有人可以指出模拟器的正确目标三元组吗?任何其他提示同样受欢迎。模拟器在“10.7 Darwin i386”机器上运行(或者uname -a 告诉我)。

【问题讨论】:

    标签: iphone code-generation llvm


    【解决方案1】:

    看起来您正在向 i386 汇编器提供 arm 汇编器代码(“.syntax 统一”是 ARM 唯一的东西)。所以,是的,您应该为 x86 生成代码。最有可能 - 对于 i386-apple-darwin10。不过不确定模拟器。

    【讨论】:

    • 我尝试指定'i366-apple-darwin10',但生成的程序集文件仍然有'.syntax unifies'。事实上,对于 i386、i686 和 darwin9、darwin10 的任何组合,该字符串都不会消失。
    • 我想通了。条件错误地评估为 false,因为没有拾取模拟器的目标三元组。 “i386-apple-darwin9”适用于我的机器。谢谢。
    猜你喜欢
    • 2022-01-23
    • 2011-04-07
    • 2011-03-26
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多