在我们的项目中,考虑到标准库内存的包含,我们遇到了一个问题。Objective-C头文件中的#include <memory>
会导致错误'memory' file not found
。头文件是为外部静态库导入的,当我们签出以前版本的库时,它已经工作过一次了。
在这个以前的版本中,同样的错误现在发生了,从那时起,我们对这个库的测试项目所做的唯一更改就是将XCode从以前的8.3更新到9.2版本。
有没有人在使用外部库和更新XCode时遇到了类似的问题,或者可能会给我一个提示,这是什么原因造成的?
发布于 2018-01-12 15:46:34
memory
是一个仅限C++使用的头文件。您只能将其包含到C++和Objective-C++文件中。您应该将文件后缀从.m
更改为.mm
,以将Objective-C文件更改为Objective-C++文件。
如果您希望将include放入Objective-C标头中,并将其包含到Objective-C和Objective-C++代码中,则应使用适当的#ifdef
将include括起来,例如:
#ifdef __cplusplus
#include <memory>
#endif
注意:您仍然只能在(Objective-)C++中使用来自<memory>
的声明。
https://stackoverflow.com/questions/48221633
复制相似问题