我有一个C++类,可以在linux上使用gcc和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:在评论出几个包括空的时间后,我得到了一个不同的错误:上面的向量错误.
#ifndef BOID_NAV_DEFINES_H #define BOID_NAV_DEFINES_H #include#include #include "Vector3d.h" #include "Point3d.h" #include "win_layer.h" #endif
epatel.. 22
您是否在.m文件中包含C++标头?
.m文件被视为具有Objective-C扩展名的.c文件.
.mm文件被视为具有Objective-C扩展名的.cpp文件,然后它被称为Objective-C++
只需将任何.m文件重命名为.mm,右键单击或按住Ctrl键单击并在Xcode中选择重命名文件.
您是否在.m文件中包含C++标头?
.m文件被视为具有Objective-C扩展名的.c文件.
.mm文件被视为具有Objective-C扩展名的.cpp文件,然后它被称为Objective-C++
只需将任何.m文件重命名为.mm,右键单击或按住Ctrl键单击并在Xcode中选择重命名文件.
如果你点击你的项目,点击你的项目,点击tagets-> build settings一直到"LLVM GCC 4.2 - 语言"(新的xcode说"Apple LLVM编译器4.2")你没有改变任何.m到.mm或类似的东西将看到Compile Sources将值改为Objective-C++ ;