在 swift 中使用静态 C 库,找不到模块

Using static C library in swift, cannot find module

我需要为 C 库创建一个 swift 包装器,以便在 iOS 和 macOS 上使用。 我已将 .a 添加到框架列表并将其包含在 library search path 中。我已将头文件添加到项目并将其添加到 User header search paths 并且我也已将 module.modulemap 添加到项目。看起来像这样:

module codinglibc [system][extern_c] {
    header “codinglibc.h”
    export *
}

但是当我在 Swift 中导入模块时:

import Foundation

import codinglibc

我收到此错误消息:No such module 'codinglibc'

该项目是一个 Cocoa 框架,我一直在遵循本指南:https://medium.com/swift-and-ios-writing/using-a-c-library-inside-a-swift-framework-d041d7b701d9

我看了很多 Whosebug 的答案,但大多数都通过添加导入路径解决了,我已经完成了,Xcode 可以找到头文件和静态库,所以这不是问题。

所以: 1. 我是否做了明显错误但我没有注意到的事情? 2. 我应该改用 briding headers 吗?

编辑: 我尝试启用 Allow Non-modular Includes In Framework Modules 仍然没有成功

答案很琐碎,但很烦人。

如果在Xcode项目中添加module.modulemap,Xcode不会将其注册为"to be imported",所以您需要做的是添加路径给你 module.modulemap 文件中的 header 包括。