我的Objective-C项目中有C ++文件头(interface.hpp
)。
当我使用它时,我在行上发现编译错误:#include <map>
map file not found
#include <string>
string file not found
在我看来,尽管文件扩展名为hpp,但Xcode正在将其编译为C头,而不是C ++头。
有什么建议吗?
答案 0 :(得分:1)
标题的扩展名无关紧要。重要的是包含该标头的文件的扩展名。如果要在Objective-C代码中包含C ++标头,则需要将Objective-C文件的扩展名更改为.mm
。这表明该文件是一个Objective-C ++源文件(实际上是另一种语言,所以要小心你知道你在做什么)。包含在.mm
文件中的标题将被解析为Objective-C ++,因此您的C ++结构应该可以正常工作。
答案 1 :(得分:0)
您必须将文件扩展名更改为.mm
才能使用它。
答案 2 :(得分:0)
如果将扩展名更改为.mm不起作用,请尝试在构建设置中将 -l“c ++”添加到其他链接器标记。