ModuleMap:如何设置伞形标头的相对路径?

顶点

我正在使用Swift Package Manager。我有一个可以通过“快速构建”成功构建的项目。我已经通过“ swift package generate-xcodeproj”创建了一个Xcode项目。当我在Xcode中打开项目时,它会成功构建。

Xcode项目包括两个模块A和B。

模块A具有以下映射:

module ModuleA {
    umbrella header "/Users/Robert/Temp/MyProject/Sources/ModuleA/include/ModuleA.h"
    link "ModuleA"
    export *
}

模块B依赖于A并具有以下导入:

import ModuleA

到现在为止还挺好; 一切都成功构建。现在,我想更改模块映射,以使其使用相对路径,例如:

module ModuleA {
    umbrella header "ModuleA.h"
    link "ModuleA"
    export *
}

但是,当我这样做时,我无法构建模块B:错误-未找到伞头'ModuleA.h'。我已经尝试了在构建设置->搜索路径->标头搜索路径和用户标头搜索路径中可以想到的所有内容。我在网上,其他地方和其他地方都发现了类似的问题,并且尝试了阅读的内容,但到目前为止没有结果。

这已经达到拔毛阶段。任何建议将不胜感激!

安吉·阿加瓦尔

我的猜测是您正在修改生成的modulemap。在以下位置创建一个模块映射文件/Users/Robert/Temp/MyProject/Sources/ModuleA/include/module.modulemap

module ModuleA {
    umbrella header "ModuleA.h"
    link "ModuleA"
    export *
}

运行$ swift package clean以删除.build目录中旧生成的modulemap,$ swift build确认自定义modulemap起作用。然后删除生成的Xcode项目并重新生成它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章