当指定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']
}
}