Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin Native cinterop def文件:如何消除绝对路径?_Kotlin_Kotlin Multiplatform_Kotlin Native - Fatal编程技术网

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

Kotlin Native cinterop def文件:如何消除绝对路径?,kotlin,kotlin-multiplatform,kotlin-native,Kotlin,Kotlin Multiplatform,Kotlin Native,在指定linkerOpts时,我们需要为-L选项设置绝对路径,但很容易中断 在旧版本中,在build.gradle中设置linkerOpts可能会起作用,但在1.3.50中,它警告cinterop不支持“-linker option”/-linkerOpts/-lopt option。请将链接器选项添加到.def文件或二进制编译中。”,并且生成会失败,并出现“Undefined symbols”错误 我该怎么办?此选项将被弃用一次,因此该警告是在1.3.50发布后故意添加的。这里的动机是人们应该

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

在旧版本中,在build.gradle中设置
linkerOpts
可能会起作用,但在1.3.50中,它警告cinterop不支持“-linker option”/-linkerOpts/-lopt option。请将链接器选项添加到.def文件或二进制编译中。”,并且生成会失败,并出现“Undefined symbols”错误


我该怎么办?

此选项将被弃用一次,因此该警告是在
1.3.50
发布后故意添加的。这里的动机是人们应该更喜欢设置所有链接器选项,甚至可以通过
.def
文件来设置 但是,在这种情况下,构建不应该分离。您能否添加脚本内容,使其更清楚-到底是什么导致了错误


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

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

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

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

感谢您的回答,我将我的项目上传到GitHub:,在克隆(不需要子模块)后,在项目根目录下运行
/gradlew iosTest
(需要iOS development env和iPhone 8模拟器),最后一次提交将失败,并带有
未定义的符号,如果您修改
KmppBase64/src/iosMain/cinterop/NativeBase64.def
的内容,那么上一次提交应该可以工作。嘿@Piasy!看起来我发现了问题——看看上面的更新。如果有什么地方出了问题,但又无济于事,请再打电话给我。