【发布时间】:2014-07-23 22:28:45
【问题描述】:
我在我的 Xcode 项目中包含了一个静态库的头文件(taglib.a 用于解析文件系统上的音乐文件)。
该库是用 C++ 编写的。 Xcode 中的编译器似乎认为它是一个 Objective-C 库。
我在包含的头文件中得到这个编译错误:taglib.h
Unknown type name 'namespace'
通常对于此类问题,解决方案是将文件的扩展名更改为.mm,以告知编译器不仅是objective-C,而且在这种情况下它是一个头文件。它是导入库的标题,甚至在我的项目树中。
如何解决?
使用库的文件 (#import "taglib/taglib.h")
【问题讨论】:
-
解决方案是将实现文件从
.m更改为.mm。发生错误是因为.m文件正在查看 C++ 头文件。 -
@trojanfoe 我想我在问题中写得很清楚,我无权访问 m 文件,因为这是一个静态库,而错误发生在标题中。
-
你的问题是“我的 Xcode 项目”,所以我假设你可以访问所有的实现文件。
-
您可能在某处包含标题
-
编译器不编译头文件;它编译包含头文件的实现文件。
标签: c++ objective-c xcode cocoa