代码之家  ›  专栏  ›  技术社区  ›  ElfeXu

升级到Xcode 4.5后,theos项目出现错误“ld与信号6终止”

  •  3
  • ElfeXu  · 技术社区  · 12 年前

    我正在使用 https://github.com/DHowett/theos 为越狱的iphone实现一个调整。 我紧随其后 http://brandontreb.com/beginning-jailbroken-ios-development-getting-the-tools/ 一切都很顺利。 然后我将Xcode升级到4.5。 然后,当编译任何调整项目,甚至是helloworld项目时,它都失败了,并出现以下错误:

        Making all for tweak PreferenceLoader...
        Preprocessing Tweak.xm...
        Compiling Tweak.xm...
        Linking tweak PreferenceLoader...
        collect2: ld terminated with signal 6 [Abort trap: 6]
        ld(8724,0x7fff78fd2960) malloc: *** error for object 0x7f89b35003f0: pointer being freed was not allocated
        *** set a breakpoint in mallocerror_break to debug
        make[2]: *** [obj/PreferenceLoader.dylib] Error 1
        make[1]: *** [internal-library-all] Error 2
        make: *** [PreferenceLoader.all.tweak.variables] Error 2
    

    我发现了这个 http://iphonesdkdev.blogspot.jp/2012/06/how-to-install-thoes-under-xcode-44.html ,走了所有的路,但仍然没有运气。

    关于链接工具崩溃有什么想法吗?

    1 回复  |  直到 12 年前
        1
  •  6
  •   ElfeXu    12 年前

    从获得反馈 https://github.com/DHowett/theos/issues/39

    Xcode 4.5附带了同一链接器的两个不同版本。gcc使用的(已弃用)在armv6输出上崩溃,clang使用的无法生成armv6输出。 目前,在针对4.3以下的iOS版本或任何armv6平台时,都无法使用6.0 SDK。 如果您愿意接受这一点,请在Makefile的顶部添加以下内容:

    导出ARCHS=armv7 export TARGET=iphone:最新版本:4.3

    (奥斯特雷姆注) 或者,也可以使用较旧的SDK,并针对体系结构和较旧的部署目标(从3.0开始)进行构建。只需强制它们(如果它们存在于Xcode Developer目录中),如下所示:

    导出ARCHS=armv6 armv7 export TARGET=iphone::