I have a objective c/c++ project under iOS, moving it from OS/X and I get a ‘file not found’ error on
#include <string>
It’s a clean project, and I’ve just added the files from the old project. Are the STL includes set up in XCode? A find produces a number of possibilities e.g.
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/include/c++/4.2.1/debug/
but adding this to the search path just threw up more errors. Any suggestions?
(apart from don’t use string – it’s in house code I’m porting)
xcode 4.2.1, ios5.0 running on OS/X 10.7.3 and it’s in a .cpp file, the code works fine on OS/X
Are you really sure
<string>is included only from a .cpp file?I just tested on a fresh project, by adding a .cpp file and including
<string>, and it works, just as expected (same Xcode version, same SDK version).But if I include
<string>in a .m file, then of course I got a «file not found» compiler error.So double-check this, as the error may come from here.
Do you include
<string>from a .cpp file only, or from a .h file, intended to be used by a .cpp implementation?Then maybe it’s also included by a .m file, hence the error.
Also check your precompiled headers, if any, to see if you include some C++ stuff there…
Also remember, in that later case, that you can rely on the
__cplusplusmacro, when needed.