我有一个C++类,可以在带有gcc的Linux上和Visual Studio中的寡妇上很好地进行编译。
boid.h:
#ifndef BOID_CLASS_HEADER_DEFINES_H
#define BOID_CLASS_HEADER_DEFINES_H
#include "defines.h"
class Boid {
public:
// Initialize the boid with random position, heading direction and color
Boid(float SceneRadius,float NormalVel);
.....
protected:
...
};
#endif
并在boid.cpp中:
#include "Boid.h"
// Initialize the boid with random position, heading direction and color
Boid::Boid(float SceneRadius,float NormalVel)
{
....
}
但是,当我在Xcode中编译此代码时,出现以下错误:
Compiling Boid.h: "error: vector: No such file or directory"
有任何想法吗?我以为您可以使用C/C++代码并在Xcode中编译它而不会出现问题?
谢谢
编辑:添加了define.h(还向示例添加了#endif,但这在原始代码中)
编辑2 :在注释掉几个包含空的内容后,我得到了另一个错误:上面的 vector 错误。
#ifndef BOID_NAV_DEFINES_H
#define BOID_NAV_DEFINES_H
#include <stdlib.h>
#include <vector>
#include "Vector3d.h"
#include "Point3d.h"
#include "win_layer.h"
#endif
最佳答案
您是否在.m文件中包含C++ header ?
.m文件被视为具有Objective-C扩展名的.c文件。
.mm文件被视为具有Objective-C扩展名的.cpp文件,因此被称为Objective-C++
只需将任何.m文件重命名为.mm,右键单击或ctrl单击,然后在Xcode中选择该文件上的重命名。
关于c++ - 在Xcode中编译C++类: error during compilation: STL vector,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/534861/