Kotlin Native cinterop def文件:如何消除绝对路径



当指定linkerOpts时,我们需要为-L选项设置绝对路径,但很容易中断。

在旧版本中,在build.gradle中设置linkerOpts可以工作,但在1.3.50中,它警告"-cinterop不支持-linker选项/-linkerOpts/-lopt选项。请将链接器选项添加到.def文件或二进制编译中。",并且构建确实失败,并出现"未定义的符号"错误。

我能做什么?

此选项将被弃用一次,因此在1.3.50发布之后有意添加了警告。这里的动机是,应该更喜欢通过.def文件设置所有链接器选项,甚至是特定于平台的选项
但是,在这种情况下,构建不应该破裂。你能添加脚本内容吗,让它更清楚——到底是什么导致了错误?


UPD:GH项目在评论中分享后,我想在这里添加一些细节。这个问题在这里的文档中有描述,这部分:

通常需要为使用本机库的二进制文件指定特定于目标的链接器选项。这可以使用二进制文件的linkerOpts属性来完成。

因此,在这种特殊情况下,将选项添加到binaries部分而不是cinterops部分是正确的。最后,我和一起做了一些事情

binaries {
all {
linkerOpts = ['-L'+rootProject.projectDir+'/libs/NativeBase64/iOS/', '-lNativeBase64']
}
}

相关内容

最新更新