我正在尝试制作一个在 Kotlin-Native 中读取和执行 C 代码的军国主义示例。我在这里关注这篇文章。但是,我在最后一步收到“未解决的参考”错误。这是我正在使用的所有文件/命令。我的操作系统是Windows。
测试库
#ifndef MY_TEST_LIB
#define MY_TEST_LIB
int getRandomNumber();
#endif
测试库
#include "testlib.h"
#include <stdio.h>
#include <stdlib.h>
int getRandomNumber() {
return rand();
}
我已经将这些文件编译成一个名为libtestlib.lib
. 我的目标是getRandomNumber
从 Kotlin Native 内部调用。
接下来我有这些 kotlin 相关文件:
测试库.def
headers = testlib.h
headerFilter = ./*
compilerOpts = -L. -ltestlib -I.
CLibTest.kt
import testlib.*
fun main(args: Array<String>) {
println(getRandomNumber())
}
最后,我正在运行这两个命令。第一个制作klib
:
cinterop -def testlib.def -o testlib
然后最后一个创建可执行文件:
konanc CLibTest.kt -library testlib
一切正常,直到最后一个命令,我收到以下错误:
CLibTest.kt:4:10: error: unresolved reference: getRandomNumber
println(getRandomNumber())
有人能指出我哪里出错了吗?