Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 使用#include<;编译错误;字符串>;在Cocoa应用程序中_Xcode_Stl - Fatal编程技术网

Xcode 使用#include<;编译错误;字符串>;在Cocoa应用程序中

Xcode 使用#include<;编译错误;字符串>;在Cocoa应用程序中,xcode,stl,Xcode,Stl,我正试图在xcode 4.0中编译一个Cocoa应用程序,我遇到了这个错误 fatal error: 'string' file not found …尝试编译到此行上的.pch文件时: #include <string> #包括 我有另一个xcode项目做同样的事情,但没有得到错误。我已经搜索了一些不同的构建设置,但找不到。唯一的区别是编译OK的项目是作为命令行项目启动的,而不是Cocoa项目,但是构建设置是相同的 目标操作系统是Mac OS X 10.6 编译预编译头时发生

我正试图在xcode 4.0中编译一个Cocoa应用程序,我遇到了这个错误

fatal error: 'string' file not found
…尝试编译到此行上的.pch文件时:

#include <string>
#包括
我有另一个xcode项目做同样的事情,但没有得到错误。我已经搜索了一些不同的构建设置,但找不到。唯一的区别是编译OK的项目是作为命令行项目启动的,而不是Cocoa项目,但是构建设置是相同的

目标操作系统是Mac OS X 10.6

编译预编译头时发生错误,无法访问任何其他文件。编译版本的唯一框架是基础框架,而非编译框架也有。
为什么在一个项目中找不到,而在另一个项目中找不到?有什么建议吗?< /P> < P> <代码> String < /Cord>是C++标题(对于STD::String)。如果您正在查找类似于strcpy的内容,则需要包含
string.h

源文件的扩展名是什么?如果是“.m”,尝试将其更改为obj cpp“.mm”,以便Xcode将推导出正确的语言。 或者只是将特定于c++的标题放在“#ifdef_uucplusplus”块中

更新

对于项目中编译的每种语言,都必须存在保护,因为pch中包含此特定的include。如果是C++和/或Objc++,则不会出错。显然,至少有一个文件不识别C++(例如C或Objc源也被编译在目标中)。因此,您只需像这样保护它:

// MONPrefix.pch

#ifdef __cplusplus
#include <string>
#endif

// same for objc, so your C and C++ sources compile with no error:
#ifdef __OBJC__
#include <Foundation/Foundation.h>
#endif
//MONPrefix.pch
#ifdef_uucplusplus
#包括
#恩迪夫
/Obj/C,因此C和C++源编译无错误:
#ifdef__OBJC__
#包括
#恩迪夫

您的应用程序是用什么编程语言编写的?<代码> >代码>不是一个Objul-C的东西吗?你可以在ObjtoVC++中使用STL。只要给你的文件命名。我从一个全新的cocoa应用程序模板重新开始了这个项目,现在它工作得很好。+1“只需将c++特定的头放在”#ifdef u cplusplus“block”中即可——这是正确的解决方案——但项目中编译的每种语言都必须有保护,因为这个特定的包含在pch中。如果是C++和/或Objc++,则不会出错。显然,至少有一个文件不承认C++(例如C或Objc)。将更新我自己--我现在看到这已经有几个月了:)这帮助我找到了如何为Cocos2D-X项目正确设置Prefix.pch的方法。在“{ IFDEF”和“CPLUSSPLUS”中包装C++特定的东西就像一个魅力。