我在iOS下有一个客观的c/c ++项目,从OS/X移动它,我得到一个'找不到文件'错误
#include <string>
Run Code Online (Sandbox Code Playgroud)
这是一个干净的项目,我刚刚添加了旧项目中的文件.STL是否包含在XCode中设置?一个发现产生了许多可能性,例如
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/include/c++/4.2.1/debug/
Run Code Online (Sandbox Code Playgroud)
但是将其添加到搜索路径只会引发更多错误.有什么建议?(除了不使用字符串 - 它是在我正在移植的房屋代码中)
xcode 4.2.1,ios5.0在OS/X 10.7.3上运行,并且在.cpp文件中,代码在OS/X上运行正常
Mac*_*ade 17
你确定<string>
只包含一个.cpp文件吗?
我刚刚测试了一个新项目,通过添加一个.cpp文件并包含<string>
它,它的工作原理与预期相同(相同的Xcode版本,相同的SDK版本).
但是,如果我包含<string>
在.m文件中,那么当然我得到了一个"找不到文件"编译器错误.
所以仔细检查一下,因为错误可能来自这里.
您<string>
是仅包含来自.cpp文件还是来自.h文件,旨在由.cpp实现使用?
然后也许它也包含在.m文件中,因此错误.
还要检查你的预编译头文件(如果有的话),看看你是否包含了一些C++内容......
还要记住,在后一种情况下,您可以__cplusplus
在需要时依赖宏.
Hal*_*far 11
如果你在ObjC文件中包含一个标题,<string>
然后它包含那么你会遇到这样的错误.对于所有.m文件,XCode使用C编译器(clang或llvm-gcc).对于它将使用的所有.mm文件(clang ++或llvm-g ++).
我建议您将所有.m文件重命名为.mm.包括main.m到main.mm.