1

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

当我将此代码带入我的另一个最终项目时,它表明找不到“cmath”文件。

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

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

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

在最终项目中,我使用 Zxing 并使用 CorePlots。不确定它们是否引起任何问题。还有一些文件正在使用#include,不确定这是否会与#incude 冲突。(但同样 #include 的其他文件工作正常。

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

4

2 回答 2

5

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

于 2012-05-12T22:40:45.227 回答
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 文件执行相同的操作。

于 2012-05-12T22:36:19.740 回答