#include <vector>没有这样的文件或目录

Dai*_*air 8 iphone stl objective-c++

所以我需要在我的项目中使用向量.我已将.m文件更改为.mm以使其成为Objective-C++.但是,当我试着说:

#include <vector>
Run Code Online (Sandbox Code Playgroud)

在我的.h中,它说无法找到文件或目录.如果我把那行代码放在我的.mm文件中虽然没有出现错误,但是因为我需要一个向量@interface(在我的.h中)我该怎么办才能使.h文件找到向量文件?

此外,我已经尝试将其更改为将所有内容编译为Objective-C++,但这不起作用,因为我在使用的Cocos2d库中出现了一些错误...

mac*_*rth 28

您的.h文件是否包含在任何其他.h或.m文件中?

如果是这样,你必须将这些(或包含它们的文件等)制作成.mm.

  • 不.这个特殊的头文件(比如xh)自然包含在x.mm中,但可能你也在某些OTHER模块中使用了x类型的对象,比如y.因此,yh将包含"#include xh"这一行.现在当编译器正在编译ym时,它不会期待C++代码,因此当它遇到它时会抱怨xh的行"include <vector>".因此ym必须重命名为y.mm,即使你没有在y.mm中使用任何C++代码最后,yh可能包括在zh中,你必须将zm转换为z.mm等等.所以它更容易包含mm文件中的向量,如果可以的话. (6认同)

Joh*_*ato 8

如果你点击你的项目,点击你的项目,点击你的项目,点击tagets-> build settings一直到"LLVM GCC 4.2 - 语言",你会看到编译源代码将这个值更改为Objective- C++ ;