【问题标题】:Converting llvm bitcode library to a native code library将 llvm 位代码库转换为本机代码库
【发布时间】:2015-09-25 11:05:49
【问题描述】:

背景: 我有很多使用位码支持构建的动态框架。由于其他一些依赖项,我无法在我的主应用程序上支持位码,并且由于我正在开发 iOS 应用程序,当我将构建发送到 iTunes Connect 进行分发时,它们会被拒绝,因为它们包含带有位码的框架。因此,无论他们这样做的原因是什么,我都需要从框架中删除 bitcode 以分发我的应用程序。

问题: 有没有办法通过 llvm、clang 或任何其他工具之一将位码二进制文件转换为本机二进制文件?

【问题讨论】:

    标签: xcode clang llvm


    【解决方案1】:

    可能有一种方法可以避免从位码到 IR,但以下链至少可以工作:

    clang -O3 -emit-llvm hello.c -c -o hello.bc #Source  -> Bitcode
    llvm-dis hello.bc -o hello.ll               #Bitcode -> IR
    clang hello.ll -o hello                     #IR      -> Native
    

    【讨论】:

    • 这需要重新编译源代码。是否可以转换已经编译的库,在这种情况下为 .dylib?
    • 我没有使用过 .dylib 文件,所以我不知道有关它的任何细节。我猜不可能在上面运行 llvm-dis 吧?
    • 其实我是在手机上看的例子,有点误会,我稍后再试一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2014-02-08
    • 1970-01-01
    • 2017-07-22
    相关资源
    最近更新 更多