我正在尝试使用已经在另一个独立项目中运行的代码而没有问题。
当我将此代码带入我的其他最终项目时,它表示找不到'cmath'文件。
带有#include的文件位于.hpp文件中(它只定义了一些opengl的结构),因此没有相应的.mm文件。 (这是C ++代码,我主要是一个客观的用户,所以不确定所有的c ++东西) 但这是针对opengl的东西而且工作正常,我们不在这个项目中。
我已经尝试了一切来完成这项工作。
有问题的最终项目还有其他代码使用#include而没有问题。 这几乎就像某些东西导致xcode不再识别标题的路径了。 我检查了它的文件类型是“Default C ++ header”
在最后的项目中,我正在使用Zxing并使用CorePlots。不确定它们是否造成任何问题。还有一些文件使用#include不确定是否可能与#incude冲突。 (但#include的其他文件再次正常工作。
任何帮助将不胜感激......
答案 0 :(得分:5)
另外,对于Jon Reid的好建议,您可以在Build Settings中选择“Compile as Objective-C ++”。 (在Build Settings窗口中搜索“Compile sources”。)这有点狂野,但是可以快速查看问题是否实际上是C ++源代码编译为C或Objective-C
答案 1 :(得分:4)
您的头文件本身不存在;必须要导入它。重命名导入文件,将其文件类型从.m更改为.mm。
例如,假设您的标题包含< cmath>被命名为foo.h.而这又由bar
模块使用,该模块由bar.h和bar.m组成。所以foo.h是在bar.h或bar.m。
将bar.m重命名为bar.mm,以便它使用C ++。对依赖于foo.h的所有.m文件执行相同的操作。