Xcode项目#include <cmath> </cmath>

时间:2012-05-12 22:21:59

标签: xcode include objective-c++

我正在尝试使用已经在另一个独立项目中运行的代码而没有问题。

当我将此代码带入我的其他最终项目时,它表示找不到'cmath'文件。

带有#include的文件位于.hpp文件中(它只定义了一些opengl的结构),因此没有相应的.mm文件。 (这是C ++代码,我主要是一个客观的用户,所以不确定所有的c ++东西) 但这是针对opengl的东西而且工作正常,我们不在这个项目中。

我已经尝试了一切来完成这项工作。

有问题的最终项目还有其他代码使用#include而没有问题。 这几乎就像某些东西导致xcode不再识别标题的路径了。 我检查了它的文件类型是“Default C ++ header”

在最后的项目中,我正在使用Zxing并使用CorePlots。不确定它们是否造成任何问题。还有一些文件使用#include不确定是否可能与#incude冲突。 (但#include的其他文件再次正常工作。

任何帮助将不胜感激......

2 个答案:

答案 0 :(得分:5)

另外,对于Jon Reid的好建议,您可以在Build Settings中选择“Compile as Objective-C ++”。 (在Build Settings窗口中搜索“Compile sources”。)这有点狂野,但是可以快速查看问题是否实际上是C ++源代码编译为C或Objective-C

答案 1 :(得分:4)

您的头文件本身不存在;必须要导入它。重命名导入文件,将其文件类型从.m更改为.mm。

例如,假设您的标题包含&lt; cmath&gt;被命名为foo.h.而这又由bar模块使用,该模块由bar.h和bar.m组成。所以foo.h是在bar.h或bar.m。

中导入的

将bar.m重命名为bar.mm,以便它使用C ++。对依赖于foo.h的所有.m文件执行相同的操作。