每个框架内的module.modulemap文件中的export *是什么?

问题描述 投票:0回答:1

我创建了一个名为

Communication
的框架。在框架的容器内,有一个
module.modulemap
文件,其中包含以下内容:

framework module Communication {
    umbrella header "Communication.h"

    export *
    module * { export * }
}

我可以理解该模块声明了一个伞形标头以将其公开给包含的应用程序/目标。

另外两行代码是什么意思?

export *
module * { export * }

这些线路输出什么?

ios iphone swift frameworks swift4
1个回答
4
投票

Objective-C 和 Swift 的 Objective-C 模块映射(.modulemap)

Objective-C 语言通过 Objective-C 和 Swift 语言的 .modulemap 公开 API

[ObjC 模块]

[自定义.modulemap]

它是关于LLVM 模块和模块映射语言

Modulemap
公开 external 二进制文件的 C 头文件。它是模块和标头之间的桥梁。 Modulemap 有助于转换
#include, #import -> @import
,因为它内部有模块名称和标头之间的映射。 modulemap 还有助于创建独立的“附加”模块和子模块。 Modulemap可以包含很多模块(只有一个模块必须与产品名称相同)和很多子模块 //Objective-C exposes API through .modulemap for Objective-C and Swift .h.m uses .h.m = Objective-C consumer, Objective-C producer = .modulemap .swift uses .h.m = Swift consumer, Objective-C producer = .modulemap

包含
.modulemap

的框架称为

Modular Framework
。路径:
module_name.framework/Modules/module_name.modulemap

设置

创建库时

[在同一个应用程序中混合 Objective-C 和 Swift]

© www.soinside.com 2019 - 2024. All rights reserved.