XCode Objc头文件找不到标准内存库

时间:2018-01-12 07:39:53

标签: ios objective-c xcode

在我们的项目中,考虑到标准库内存的包含,我们遇到了一个问题。 Objective-C头文件中的#include <memory>导致错误'memory' file not found。头文件是为外部静态库导入的,当我们签出以前版本的库时,它已经工作了一次。

使用此先前版本时,同样的错误现在发生,从那时起,我们对该库的测试项目所做的唯一更改是将XCode从先前的8.3更新到版本9.2。

在使用外部库并更新XCode时是否有人遇到类似问题或者可能会给我一个提示,这可能是导致此行为的原因?

1 个答案:

答案 0 :(得分:5)

memory是一个仅限C ++的标头。您只能将其包含在C ++和Objective-C ++文件中。您应该将文件后缀从.m更改为.mm,以将Objective-C文件更改为Objective-C ++文件。

如果您想将include放入Objective-C标头并将其包含在Objective-C和Objective-C ++代码中,则应将include包含在适当的#ifdef中,例如:

#ifdef __cplusplus
#include <memory>
#endif

注意:您仍然只能使用(Objective-)C ++中<memory>的声明。