【问题标题】:Marmalade iOS multiple architectures supportMarmalade iOS 多种架构支持
【发布时间】:2014-08-25 17:05:38
【问题描述】:

来自官方网站的构建 marmalade 扩展静态 lib-wrappers 的说明显示了如何仅构建单一架构 (armv6) 扩展。我尝试在项目中包含许多架构:

if {{defined I3D_OS_IPHONE}}
{
    includepath incoming

    files
    {
    ["MyTracker Library armv7"]
    (incoming/armv7)
    "*.o"

    ["MyTracker Library armv7s"]
    (incoming/armv7s)
    "*.o"

    ["MyTracker Library armv64"]
    (incoming/armv64)
    "*.o"    

        ["source"]
        (use_first_found, source/iphone, source/generic)
        MyTracker_platform.mm
        #Add any iphone-specific files here
    }
}

但是我在尝试构建它后收到了很多错误消息:

Executing: '/usr/local/bin/scons -Q compiler=clang'

scons: warning: Support for pre-2.7.0 Python version (2.6.8) is deprecated.
    If this will cause hardship, contact dev@scons.tigris.org.
File "/usr/local/bin/scons", line 192, in <module>
Librarian [ar] /Users/misha/Documents/MyTracker/lib/iphone/libMyTracker.a
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib: archive member: /Users/misha/Documents/MyTracker/lib/iphone/libMyTracker.a(MyDispatcher.o) cputype (7) does not match previous archive members cputype (12) (all members must match)
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib: archive member: /Users/misha/Documents/MyTracker/lib/iphone/libMyTracker.a(MyTracker.o) cputype (16777223) does not match previous archive members cputype (12) (all members must match)
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib: archive member: /Users/misha/Documents/MyTracker/lib/iphone/libMyTracker.a(MyNetwork.o) cputype (16777228) does not match previous archive members cputype (12) (all members must match)

....

malformed object (unknown load command 1)
ar: internal ranlib command failed
scons: *** [/Users/misha/Documents/MyTracker/lib/iphone/libMyTracker.a] Error 1
Executing 'scons -Q' failed. (return code 2). Retry
error: Executing 'scons -Q' failed. (return code 2)
FAILED (error code=3)

如何构建支持多种架构的扩展?

【问题讨论】:

    标签: ios architecture marmalade


    【解决方案1】:

    这通常不是处理此问题的建议方法。您看起来正试图从这些库中引入符号,这是 EDK 不支持的。您最好的选择是在部署时包含这些库(或者很可能只是 arm6/7 库,具体取决于您想要使用它的程度)以及已编译的扩展,而是使用头文件编译扩展(或者由您正在使用的任何 SDK 的开发人员提供,或者您为编译这些 .o 库而编写的 SDK)。

    【讨论】:

      【解决方案2】:

      为多个目标构建是正在重构的东西。我的理解是,在某个阶段,文档和底层代码都过时了。我相信这种方法将与您尝试做的完全不同 - 我不确定您为什么要拉入 .o 文件,但通常这在果酱中效果很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-02
        相关资源
        最近更新 更多