C ++导入的库未正确编译

时间:2014-07-23 07:37:57

标签: c++ objective-c xcode cocoa

我在Xcode项目中包含了静态库的标题(taglib.a来解析文件系统上的音乐文件)。

该库是用C ++编写的。似乎Xcode中的编译器认为它是一个Objective-C库而已。

我在包含的标题中得到了这个编译错误:taglib.h

Unknown type name 'namespace'

通常对于这种问题,解决方案是将文件的扩展名更改为.mm以通知编译器不仅是Objective-C,而且在这种情况下它是一个头。它是导入库的标题,甚至不在我的项目树中。

如何解决这个问题?

enter image description here

使用库的文件(#import“taglib / taglib.h”)

enter image description here

3 个答案:

答案 0 :(得分:0)

将其设置为C ++标头。没关系。

enter image description here

答案 1 :(得分:0)

你看到错误,包含违规.h文件的文件必须用c ++编译器编译,所以如果你有main.m你需要将它改为main.mm - 如果你有foo .c你需要把它改成foo.cpp - 这不是免费的,因为现在你住在那个编译单元的c ++土地上...所以另一种方法是创建一个处理c ++库的ObjC ++类......然后你有更多的纯c编译单元。

答案 2 :(得分:0)

重启xCode解决了这个问题。