框架头在Xcode中找不到自己的头文件?

时间:2010-06-26 16:00:24

标签: objective-c xcode macos frameworks taglib

在Xcode中,假设有一个名为Foo的框架。在Foo.framework/Headers文件夹中,有File1.hFile2.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编译为带有头文件的框架并将其添加到我的应用程序中,但由于上述问题,我似乎无法编译应用程序

有人有任何指示吗?

感谢。

2 个答案:

答案 0 :(得分:1)

我认为File1.h应该说:

#include "File2.h"

尝试检查Xcode中的“始终搜索用户路径”选项。

答案 1 :(得分:0)

以下是修复它的步骤:

  1. 将代码更改为File1.h以使用'#include'。
  2. 在框架项目/默认目标/构建阶段,设置“复制文件”阶段并添加File1.h和File2.h。
  3. 确保“复制文件”阶段在“编译”阶段之前。
  4. 这应解决问题,因为框架将引用与使用框架的代码完全相同的文件。