0

我创建了一个 tensorflow 库并尝试在我的 kotlin 脚本中获取 tensorflow 版本

import tensorflow.TF_Version

fun main(args: Array<String>) {
    TF_Version()
}

想法可以使用 Ctrl+click 将 TF_Version() 方法链接到库,并且(在库中)我有方法

fun TF_Version(): CPointer<ByteVar>? {
    return interpretCPointer<ByteVar>(kniBridge0())
}

@SymbolName("tensorflow_kniBridge0")
private external fun kniBridge0(): NativePtr

但是当我尝试构建和启动时,我看到了这个错误

/tmp/konan_temp8584442034275821874/combined.o:ld-temp.o:function Konan_start: error: undefined reference to 'tensorflow_kniBridge0' error: /home/fnasibov/.konan/dependencies/target-gcc-toolchain-3-linux-x86- 64/x86_64-unknown-linux-gnu/bin/ld.gold 调用报错

请帮我解决这个问题

4

1 回答 1

1

找到解决方案:我的 .def 文件是

headers =  /home/user/.konan/third--arty/tensorflow/include/tensorflow/c/c_api.h

在我将 Opts 添加到 def 文件之后:

headers = /home/fnasibov/.konan/third-party/tensorflow/include/tensorflow/c/c_api.h

compilerOpts.linux = -I/usr/include -I/usr/include/x86_64-linux-gnu
linkerOpts.linux = -L/home/user/.konan/third-party/tensorflow/lib -ltensorflow

并重新生成 klib - 那行得通!

于 2018-11-27T13:30:20.360 回答