【发布时间】:2022-08-16 21:43:32
【问题描述】:
我正在学习如何在 swift 和 c++ for ios 之间进行通信。作为第一步,我查看了这个示例:
https://github.com/leetal/ios-cmake
我已经设法编译和运行了一个示例应用程序。花了一些时间让它工作。那是一个objective-c项目。
下一步是创建一个新的 swift 项目并尝试导入已编译的库并使用 swift 中的标头。
我没有做到这一点。我认为当前的问题是我不能包含标题HelloWorldIOS.h。
import SwiftUI
import HelloWorldIOS.h <- No such module found
struct ContentView: View {
var body: some View {
Text(sayHello())
.padding()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
我已尝试按照此处的建议创建一个桥接文件example-Bridging-Header.h:https://developer.apple.com/documentation/swift/importing-objective-c-into-swift
看起来像:
//
// example-Bridging-Header.h
// example-swift
//
#ifndef example_Bridging_Header_h
#define example_Bridging_Header_h
#import \"HelloWorldIOS.h\"
#endif /* example_Bridging_Header_h */
我还在Target - Build Settings - Header Search Paths 中添加了标题的路径
Objective-C Bridging Header 看起来像 example-swift/example-Bridging-Header.h。
关于如何从编译的库中调用 c++ 代码有什么好的说明吗?我希望我发现的这个例子很容易开始工作。
标签: c++ ios swift objective-c bridging-header