【发布时间】:2014-05-29 15:03:19
【问题描述】:
我的项目结构
主要项目 (ARC) 子项目(非 ARC) Boost 库(即这里流行的 C++ 库是一个链接 http://www.boost.org/)问题:
Boost 库的头文件之一(intrusive_ptr.h)有一个带有“retain”语句的内联函数(该文件由某人编辑,它在“SubProject(Non-ARC)”中工作正常)。该头文件是公开的,在“MainProject”中导入了许多子项目文件,并且这些文件具有该头文件的引用。因此,该文件间接地来自基于 ARC 的 MainProject。这就是编译器拒绝编译的原因。
我知道或尝试过的:
我知道如何设置非 ARC 标志,但我们只能为.m 文件(仅限可编译文件)设置,而不是.h 文件。如果有人可以帮助我或建议我任何开箱即用的解决方案。
有兴趣查看"intrusive_ptr.h" 的人可以在这里找到intrusive_ptr.h。此文件是boost 库的一部分,因此建议也应考虑此库。
任何帮助或指示将不胜感激。
【问题讨论】:
-
“Boost 库的一个头文件有一个带有“retain”语句的内联函数”是什么意思?不,它不是……它是 C++ 那为什么会呢?我看了一下,没找到你在说什么。我必须假设您编辑了该文件,您正在谈论一个不同的文件,或者您从某个奇怪的地方获得了该文件。哪个?
-
@borrrden:您说得对,文件由某人编辑,并且在“子项目(非 ARC)”中运行良好。我可以毫无问题地编译和运行它。
-
我猜你将不得不这样做 -> stackoverflow.com/questions/9895144/…
-
@borrrden:你的伎俩奏效了。如果你能回答这个问题,那么请我接受。
标签: c++ ios objective-c boost automatic-ref-counting