我正在创建一个嵌入一些C库的框架。使用.modulemap
文件将C库代码公开给Swift。在目标的Build Settings
中,在Swift Compiler - Search Paths
部分下,我设置.modulemap
行中Import Paths
文件的路径。在Search Paths
部分下,库和头的路径分别设置在Library Search Paths
和Header Search Paths
行中。将框架添加到应用程序的项目并尝试构建应用程序后,它将失败,并出现错误pjsip.h file not found
。Header Search Paths
的值:
标题文件夹的结构
导入过程从突出显示的蓝色文件pjsua.h
开始,然后导入其他标题,这些标题用红色矩形标记。pjsua.h
中导入的标题的完整列表
您可以看到导入的头与成功导入时应该位于的pjsua.h
文件夹不同,但这不是Header Search Paths
查找头的任务吗?我不想弄乱headers文件夹的结构,因为它是第三方库,每次都会在每次必须完成此“魔术”时更新。include路径在Other C Flags
行中定义,与settingsHeader Search Paths
相同。我不知道我错过了什么。
笔记
头路径正确。
它们不包含任何空格。
P.SThis没有帮助。
更新:
此错误仅在为模拟器生成时显示,为实际设备生成Xcode失败,并出现多个错误Redefinition of ...
最佳答案
解决办法很简单,但很难看。也为主项目设置Header Search Paths
和Search Paths
。这绝对不是将框架添加到项目中的最佳方法,因为它公开了有关框架的详细信息,但却是解决问题的唯一方法。
关于c - 在Xcode 7中找不到头文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35268355/