cinterop
在for 的文档中Kotlin/Native
,您必须定义一个.def
文件,例如:
language = Objective-C
modules = FirebaseCore
compilerOpts = -framework FirebaseCore
linkerOpts = -framework FirebaseCore
compilerOpts
现在您还可以在块中指定 a ,cinterop
例如:
compilations["main"].cinterops {
firebasecore {
packageName 'cocoapods.FirebaseCore'
defFile = file("$projectDir/src/iosMain/c_interop/FirebaseCore.def")
includeDirs ("$projectDir/../iosApp/Pods/FirebaseCore/Firebase/Core/Public")
compilerOpts ("-F$projectDir/src/iosMain/c_interop/modules/FirebaseCore-${versions.firebaseCoreIos}")
}
}
我在这里只举了 Kevin Galligan 的这个例子:KMPFirestore。
我真的很困惑compilerOpts
内部 gradle 和compilerOpts
内部.def
文件有什么区别?
我没有强大的 C 背景,我只是想学习Kotlin Multiplatform
(现在只是想了解如何与 c 或 ObjectiveC 库互操作),但我无法正确设置它们。
我真的很感激一些帮助,因为我什至不完全理解.def
文件是如何工作的。
任何与理解这些事情相关的阅读材料都会有很大帮助。