我在 iOS 下有一个客观的 c/c++ 项目,将其从 OS/X 移出,但出现“找不到文件”错误
#include <string>
这是一个干净的项目,我刚刚添加了旧项目中的文件。 STL 是否包含在 XCode 中设置?一次发现会产生多种可能性,例如
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/include/c++/4.2.1/debug/
但是将其添加到搜索路径只会引发更多错误。有什么建议么? (除了不要使用字符串 - 这是我正在移植的内部代码)
xcode 4.2.1, ios5.0 在 OS/X 10.7.3 上运行,它位于 .cpp 文件中,代码在 OS/X 上运行良好
原文由 daven11 发布,翻译遵循 CC BY-SA 4.0 许可协议
您真的确定
<string>
仅包含在 .cpp 文件中吗?我刚刚在一个新项目上进行了测试,添加了一个 .cpp 文件并包含
<string>
,它可以正常工作,就像预期的那样(相同的 Xcode 版本,相同的 SDK 版本)。但是,如果我在 .m 文件中包含
<string>
,那么我当然会遇到“找不到文件”编译器错误。所以仔细检查一下,因为错误可能来自这里。
您是否包含
<string>
仅来自 .cpp 文件,或来自 .h 文件,旨在供 .cpp 实现使用?然后也许它也包含在 .m 文件中,因此出现错误。
还要检查你的预编译头文件,如果有的话,看看你是否在里面包含了一些 C++ 的东西……
另请记住,在后一种情况下,您可以在需要时依赖
__cplusplus
宏。