所以我有一个简单的 iOS 项目,它必须使用静态库。该库主要用 C++ 编写,并且往往是跨平台的。它可以使用 Xcode 构建。
我创建了一个示例 iOS 应用程序项目,将库的项目作为子项目添加到其中,将库添加为我的 iOS 应用程序的依赖项。
我的 iOS 应用程序使用 ARC。在库中,我有几个预处理器宏,例如
#if __has_feature(objc_arc)
@autoreleasepool
#elif defined(OSX) || defined(IOS)
// something else ...
当我编译项目时,它是在未启用 ARC 的情况下编译的。所以“// something else ...”是在代码中设置的,而不是“@autoreleasepool”。
我什至为库目标和使用这些宏的特定文件设置了额外的 -fobjc_arc 标志。请看截图。
我使用 Xcode 版本 4.6.2 (4H1003),编译器是 Apple LLVM 4.2。
有没有人有任何建议为什么会发生这种情况?