kotlinnative调用C动态库
准备环境
我们提供的服务有:成都网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、萍乡ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的萍乡网站制作公司
- 安装fedora31
- 编译kotlin native
- 创建 hello.h 头文件,在其中输入如下代码
#ifndef HELLO_H
#define HELLO_H
void sayHello();
#endif
- 创建hello.c文件,在其中输入如下代码
#include "hello.h"
#include
void sayHello()
{
printf("Hello Kotlin Native\n");
}
- 编译hello.c,生成动态链接库
mkdir lib
gcc -shared -fPIC -o lib/libmyhello.so hello.c
创建hello.def文件
headers=hello.h headerFilter=hello.h package=hello
linkerOpts = -L/tmp/kotlin/lib -lmyhello #如果不加这一行,使用kotlinc编译main.kt则需要加上 -linker-options '-L./lib -lmyhello'
```
- 执行如下命令用以分析hello.h文件,并自动生成kotlin定义
cinterop -def hello.def -compiler-option -I. -o hello
- 命令执行后的结果
- 创建main.kt文件
import hello.*
fun main(args: Array)
{
sayHello()
}
- 编译main.kt
kotlinc main.kt -library hello -o main
执行文件
- 参考链接
https://github.com/plter/SimpleKotlinNativeCallCDemo
https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md
名称栏目:kotlinnative调用C动态库
标题路径:http://azwzsj.com/article/ijgojd.html