【问题标题】:'iostream' file not found error occur in xcode 4.5?xcode 4.5 中出现“iostream”文件未找到错误?
【发布时间】:2012-12-31 20:11:25
【问题描述】:

我正在练习 C++。我只是在 XCode 中添加 c++ 文件并在其中编写一些字符串拆分功能。之后,我在我的 AppDelegate 文件中包含该 C++ 文件,即 .mm 文件的扩展名,并从 C++ 类的 .h 文件中调用函数。但是我在红线中发现了一个静态错误,即 'iostream' file not found 。我使用了最新的 XCode 版本 4.5 和 iOS 6.0。请查看我的错误或 xcode 屏幕的屏幕截图。

我试图根据给定的link 信息修改我的代码,但没有成功。 :(

我也关注了这个link 信息,但结果是一样的。

谢谢 我饿了

【问题讨论】:

  • 不要 #include C++ 代码来自必须在 Objective-C 中工作的标头。 (您的问题可能是您在某处的.m 文件中包含StringSplit.h。)
  • @Mankarse,对不起,我没有得到你。我必须在 Objective-C 类中包含 C++ 类文件。我这样做了,但它给我带来了额外的错误。
  • 如果StringSplit.h 是Objective-C++(与Objective-C 相对),您应该只将它包含在.mm 文件中,而不应包含在.m 文件中。
  • 看我的截图。我有一个类 .h 和 .mm 文件的两个 C++ 文件。我在 AppDelegate.m 文件中包含 StringSplit.h 文件。
  • 我也尝试将 AppDelegate.m 文件的扩展名更改为 AppDelegate.mm 但没有成功

标签: c++ iphone ios xcode


【解决方案1】:

Objective C 的实现文件具有 .m 扩展名。如果你想在Objective C 中使用C++,它应该有.mm 扩展。您可以在 .mm 文件中包含 C++ 头文件。但是如果你想在你的.h 文件中包含你的C++ 头文件,你需要检查macro ,比如

#ifdef __cplus
#include <iostream>
#endif

但是,我还没有通过在.h 文件中包含C++ 头文件来尝试任何功能。希望对您有所帮助。

【讨论】:

  • 你甚至可以使用 .C 的 C 文件
  • @AnoopVaidya,是的,我们可以。但根据我的要求,我必须在 C++ 中执行此类功能。
  • C 和 Obj-C 的组合中缺少 C++ 中的哪些额外内容?如果我可以帮助你:p
猜你喜欢
  • 1970-01-01
  • 2020-02-02
  • 2021-04-16
  • 2012-10-24
  • 2020-02-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
相关资源
最近更新 更多