如何强制垃圾收集?

时间:2014-12-13 23:07:24

标签: xcode macos build garbage-collection dylib

使用垃圾收集构建Objective-C应用程序还有什么办法吗?

我正在编写一个库以增强Mac应用程序(因此我使用DYLD_INSERT_LIBRARIES='/path/to/dylib' /Applications/Original.app/Content/MacOS/Original运行应用程序) 当我运行这个时,我首先遇到问题,因为我的lib使用ARC,与原始应用程序不同。现在我已禁用ARC,但在原始应用程序崩溃之前我收到此运行时错误:

objc[610]: '/Users/me/mylib/myLib.dylib' was not compiled with -fobjc-gc or -fobjc-gc-only, but the application requires GC    
objc[610]: *** GC capability of application and some libraries did not match    

然而,看起来Apple现在已经取消了对普通旧GC的支持,转而支持ARC 我曾尝试使用XCode中的GCC_ENABLE_OBJC_GC或gcc(或clang)的-fobjc-gc参数,但我收到此编译错误:garbage collection is no longer supported
看起来我被困了......有没有办法用GC强制构建我的lib?我想我可能会使用仍然支持GC的旧版LLVM / gcc,但有更简单的方法吗? 注意:我使用的是XCode 6.1和Yosemite,原始应用程序(因此我的lib)是32位。

非常感谢

1 个答案:

答案 0 :(得分:0)

如上所述here: -

  

Xcode 5.1不再支持构建使用垃圾收集的OS X应用程序;尝试构建此类目标会导致构建错误。