我在Xcode项目中包含了静态库的标题(taglib.a来解析文件系统上的音乐文件)。
该库是用C ++编写的。似乎Xcode中的编译器认为它是一个Objective-C库而已。
我在包含的标题中得到了这个编译错误:taglib.h
Unknown type name 'namespace'
通常对于这种问题,解决方案是将文件的扩展名更改为.mm以通知编译器不仅是Objective-C,而且在这种情况下它是一个头。它是导入库的标题,甚至不在我的项目树中。
如何解决这个问题?
使用库的文件(#import“taglib / taglib.h”)
答案 0 :(得分:0)
将其设置为C ++标头。没关系。
答案 1 :(得分:0)
你看到错误,包含违规.h文件的文件必须用c ++编译器编译,所以如果你有main.m你需要将它改为main.mm - 如果你有foo .c你需要把它改成foo.cpp - 这不是免费的,因为现在你住在那个编译单元的c ++土地上...所以另一种方法是创建一个处理c ++库的ObjC ++类......然后你有更多的纯c编译单元。
答案 2 :(得分:0)
重启xCode解决了这个问题。