Objective c 框架头在Xcode中找不到自己的头文件?
在Xcode中,假设有一个名为Objective c 框架头在Xcode中找不到自己的头文件?,objective-c,xcode,macos,frameworks,taglib,Objective C,Xcode,Macos,Frameworks,Taglib,在Xcode中,假设有一个名为Foo的框架。在Foo.framework/Headers文件夹中有文件File1.h和File2.h。头文件File1.h通过以下指令包括File2.h: #include <File2.h> #import <Foo/File1.h> 现在,当我试图编译MyFile.mm时,它总是失败,因为它找不到File2.h。我如何在不修改Foo框架的头文件的情况下编译和运行它 好奇的是,所讨论的实际框架是从源代码树中获取的框架打包版本。我试图包
Foo
的框架。在Foo.framework/Headers
文件夹中有文件File1.h
和File2.h
。头文件File1.h
通过以下指令包括File2.h
:
#include <File2.h>
#import <Foo/File1.h>
现在,当我试图编译MyFile.mm
时,它总是失败,因为它找不到File2.h
。我如何在不修改Foo
框架的头文件的情况下编译和运行它
好奇的是,所讨论的实际框架是从源代码树中获取的框架打包版本。我试图包含的文件是
,编译包含它的.mm
文件总是失败,因为mp4tag.h
包含
,但在include指令中没有
前缀。错误不仅存在于这一个头文件中,而且在大量头文件中也存在类似的问题,因此修改所有这些include语句是非常重要的。所有必需的“缺失”头文件实际上都存在于框架的头
子目录中
我正在尝试在我的应用程序中使用Taglib,尽管我能够将Taglib编译为带有头文件的框架并将其添加到我的应用程序中,但由于上述问题,我似乎无法让应用程序编译
有人有什么建议吗
谢谢。我认为
File1.h
应该说:
#include "File2.h"
尝试检查Xcode中的“始终搜索用户路径”选项。以下是修复该选项的步骤:
这应该可以解决问题,因为框架将以与使用框架的代码完全相同的方式引用文件。我觉得框架有一个bug-它应该使用与预期框架用户使用的
#import
语句相同的前缀。此框架不是Mac OS X特定的,它们是C/C++源代码(框架中没有Objective-C源代码)。选中“始终搜索用户路径”(这是默认选项)。File1.h是开源库的一部分,它不仅仅是一个文件(也就是说,库中有许多头文件以相同的方式包含其他头文件)。好的,现在我确定框架设置不正确。如果无法修复,则需要将标题搜索路径添加到框架的Headers文件夹。我如何判断框架是否正确设置?我的意思是,如果它将自己的标题作为系统标题(在尖括号中)包含,则不正确。