指定linkerOpts时,我们需要为-L
选项设置绝对路径,但是很容易中断。
在较早的版本中,可以在build.gradle中设置linkerOpts
,但在1.3.50中,它警告说cinterop不支持“ -linker-option(s)/-linkerOpts / -lopt选项”。请将链接器选项添加到.def文件或二进制编译中。”,并且构建过程会因“未定义符号”错误而失败。
我该怎么办?
答案 0 :(得分:2)
此选项将被弃用一次,因此警告是在1.3.50
发行之后有意添加的。这样做的动机是应该更喜欢通过.def
文件设置所有链接器选项,甚至是platform-specific。
但是,在这种情况下,构建不应分解。您是否可以添加脚本内容以使其更清晰-到底是什么导致了错误?
UPD:在评论中共享了GH项目之后,我想在此处添加一些详细信息。 here文档的这一部分对此问题进行了说明:
通常,需要为使用本机库的二进制文件指定特定于目标的链接器选项。可以使用二进制文件的linkerOpts属性来完成。
因此,在这种情况下,将选项添加到binaries
部分而不是cinterops
是正确的。最后,我与
binaries {
all {
linkerOpts = ['-L'+rootProject.projectDir+'/libs/NativeBase64/iOS/', '-lNativeBase64']
}
}