准备环境

安装fedora31编译kotlin native创建 hello.h 头文件,在其中输入如下代码

#ifndef HELLO_H #define HELLO_H void sayHello();#endif创建hello.c文件,在其中输入如下代码

#include "hello.h"#include <stdio.h>void sayHello(){ printf("Hello Kotlin Native\n");}编译hello.c,生成静态链接库

mkdir libgcc -c hello.car rcs lib/libmyhello.a hello.o

创建hello.def文件

headers=hello.hheaderFilter=hello.hpackage=hellostaticLibraries = libmyhello.a #静态库的名称libraryPaths= /tmp/kotlin/lib #静态库的搜索路径

libmyhello.a会包含进同cinterop生成的hello.klib文件中

执行如下命令用以分析hello.h文件,并自动生成kotlin定义

cinterop -def hello.def -compiler-option -I. -o hello命令执行后的结果
创建main.kt文件

import hello.*fun main(args: Array<String>){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