找不到头文件时,我应该在头文件路径中输入什么?

时间:2014-05-08 03:26:52

标签: ios objective-c xcode

我在Objective-C上开发,我的应用程序在我的iPhone 5C上运行。但是,当我在Xcode中运行存档时,它显示“未找到头文件” - 请参见下图:

enter image description here

具体来说,当我运行存档时,它在MobileVLCKit/VLCMediaPlayer.h file not found中显示AITPreviewViewController.m,但MobileVLCKit/VLCMediaPlayer.h位于项目MobileVLCKit中。我该如何解决这个问题?

-------------- EDIT ------------------

我项目的文件夹如下:

VLC的头文件位于 importedSources - > VLCKit - >的接头

enter image description here

4 个答案:

答案 0 :(得分:0)

在您的项目中 - >构建设置 - >标题搜索路径

确保所有构建配置的搜索路径相同。

我认为,与您的调试配置不同,您用于存档的配置(最有可能是发布)没有列出标题搜索路径

编辑: 在Xcode构建设置中,您有:

  • 图书馆搜索路径
  • 标题搜索路径
  • 框架搜索路径

这些路径中的每一个都告诉编译器在您正在使用的第三方库/框架/标头的文件夹结构中查找的位置。

如果你在自己的机器(apk)上构建它,那么以你在评论中添加的方式获得硬编码的完整路径并不是一个问题。

但是,使用$(SRCROOT)/ your_path_to_header这是一个很好的做法,其中$(SRCROOT)将填充项目文件夹的路径。如果您使用不同的构建计算机或团队正在处理此项目,则必须具备此功能。

在您的情况下,双击或输入新的搜索路径时,应键入($ SRCROOT)/ ImportedSources / VLCKit / Headers。

另外,在Xcode中,确保生成的Library / Framework / Header搜索路径与" Full Path"相同。当您右键单击该头文件并单击"显示文件检查器" (通常你会在右侧看到这个)

答案 1 :(得分:0)

正如@nitin

所建议的那样

项目中 - >构建设置 - >标题搜索路径

尝试添加您尝试的库路径路径

$(SRCROOT)/yourlibpath

如果上述情况不起作用,您还可以检查递归选项。

由于我可以看到该库已添加为项目,因此必须有一些Target Dependency或要添加的库。

转到 - >建立阶段 点击Add Target Dependency 链接二进制文件库选项

中的Add Library也是如此

我也建议必须有一些 ReadMe 来设置库,你必须遗漏一些东西。

<强>更新

如果不是here

,请参阅构建您的库的一些步骤

更新2

同样在Build SettingsYESAlways search user paths,并确保您的User header paths指向框架。

答案 2 :(得分:0)

$(SRCROOT)/yourlibpath

只需将文件拖放到库路径即可。

答案 3 :(得分:0)

请检查以下步骤以解决问题:

1.将下载的 MobileVLCKit.framework 文件复制到项目根文件夹中。

2.转到您项目的目标构建设置 - &gt;标题搜索路径添加以下行(也添加引号)

"$(PROJECT_DIR)/MobileVLCKit.framework/Headers"
"$(BUILT_PRODUCTS_DIR)"

3.build settings-&gt;框架搜索路径(也添加引号)

"$(SRCROOT)/MobileVLCKit.framework"
"$(PROJECT_DIR)"

4.build settings-&gt;其他链接器标志添加以下行

-l"bz2" 
-l"iconv" 
-framework 
"MobileVLCKit"

5.在General-&gt;链接的框架和库中,通过单击+图标

添加以下库
libstdc++.6.tbd

6.如果您使用Swift,最重要的是通过包含以下行添加对Bridging-Header.h的引用

#import "MobileVLCKit/MobileVLCKit.h"

键入VLCMediaPlayerDelegate进行测试,看看该自动是否完成。如果是这样,通过将其指向此处来帮助他人,那么请回溯您的步骤,看看您错过了什么。

希望有所帮助。