I have a C++ class that compiles fine on linux with gcc and on widows in 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
and in boid.cpp:
#include 'Boid.h' // Initialize the boid with random position, heading direction and color Boid::Boid(float SceneRadius,float NormalVel) { .... }
However, I get the following error when I compile this code in Xcode:
Compiling Boid.h: 'error: vector: No such file or directory'
Any ideas? I thought you could take C/C++ code and compile it in Xcode without issues?
Thanks
EDIT: Added defines.h (also added #endif to sample, but that was in the original code)
EDIT 2: I am getting a different error after a commenting out a couple of includes there were empty: the vector error above.
#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
Are you including the C++ header in a .m file?
.m files are treated as .c files with Objective-C extensions.
.mm files are treated as .cpp files with Objective-C extensions, then it’s called Objective-C++
Just rename any .m file to .mm, right-click or ctrl-click and select rename on the file in Xcode.