在 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 包括。
我需要为 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 包括。