在Xcode中,假设有一个名为Foo
的框架。在Foo.framework/Headers
文件夹中,有File1.h
和File2.h
个文件。头文件File1.h
通过以下指令包含File2.h
:
#include <File2.h>
Foo
框架是一个不专门针对Mac的C ++库的重新打包。
现在假设我有一个链接到Foo
框架的项目。它有一个文件MyFile.mm
,通过以下指令包含File1.h
:
#import <Foo/File1.h>
现在,当我尝试编译MyFile.mm
时,它总是失败,因为找不到File2.h
。如何在不修改Foo
框架的头文件的情况下编译和运行它?
对于好奇的人来说,实际的框架是Taglib来自Max源代码树的框架打包版本{{3}}。我尝试包含的文件是<taglib/mp4.tag>
,并且编译包含它的.mm
文件始终失败,原因是mp4tag.h
包含<tag.h>
而没有<taglib/...>
前缀include指令。错误不仅存在于这一个头文件中,而且在大量头文件中存在类似问题,因此修改所有这些包含语句并非易事。所有必需的“缺失”头文件实际上都存在于框架的Header
子目录中。
我正在尝试在我的应用程序中使用Taglib,虽然我能够将Taglib编译为带有头文件的框架并将其添加到我的应用程序中,但由于上述问题,我似乎无法编译应用程序
有人有任何指示吗?
感谢。
答案 0 :(得分:1)
我认为File1.h
应该说:
#include "File2.h"
尝试检查Xcode中的“始终搜索用户路径”选项。
答案 1 :(得分:0)
以下是修复它的步骤:
这应解决问题,因为框架将引用与使用框架的代码完全相同的文件。