当指定linkerOpts时,我们需要为-L
选项设置绝对路径,但是很容易中断。
在旧版本中,可以在build.gradle中设置linkerOpts
起作用,但在1.3.50中,它警告“cinterop不支持-linker-option / s / linkerOpts / lopt选项。请在.def中添加链接器选项。文件或二进制编译。”,并且构建的确失败,并出现“ undefined symbol ”错误。
我能做什么?
最佳答案
此选项将被弃用一次,因此在1.3.50
发行后有意添加了该警告。这里的动机是应该通过.def
文件设置所有链接器选项,甚至是platform-specific。
但是,在这种情况下,构建不应分解。您是否可以添加脚本内容以使其更清晰-到底是什么导致了错误?
UPD:在评论中共享了GH项目之后,我想在此处添加一些详细信息。在文档here中描述了此问题,这部分内容:
Often it's necessary to specify target-specific linker options for a binary which uses a native library. It can be done using the linkerOpts property of the binary.
因此,在这种特殊情况下,将选项添加到
binaries
部分而不是cinterops
是正确的。最后,我与binaries {
all {
linkerOpts = ['-L'+rootProject.projectDir+'/libs/NativeBase64/iOS/', '-lNativeBase64']
}
}
关于kotlin - Kotlin Native cinterop def文件:如何消除绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919144/