Xcode,Objective-C项目:不编译C ++文件

时间:2016-03-08 11:56:33

标签: c++ objective-c macos cocoa

我的Objective-C项目中有C ++文件头(interface.hpp)。

当我使用它时,我在行上发现编译错误:#include <map>

map file not found

#include <string>

的情况相同
string file not found

在我看来,尽管文件扩展名为hpp,但Xcode正在将其编译为C头,而不是C ++头。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

标题的扩展名无关紧要。重要的是包含该标头的文件的扩展名。如果要在Objective-C代码中包含C ++标头,则需要将Objective-C文件的扩展名更改为.mm。这表明该文件是一个Objective-C ++源文件(实际上是另一种语言,所以要小心你知道你在做什么)。包含在.mm文件中的标题将被解析为Objective-C ++,因此您的C ++结构应该可以正常工作。

答案 1 :(得分:0)

您必须将文件扩展名更改为.mm才能使用它。

答案 2 :(得分:0)

如果将扩展名更改为.mm不起作用,请尝试在构建设置中将 -l“c ++”添加到其他链接器标记。