Kotlin/Native 库

上述命令会生成一个带有 foo.kt 编译后的内容的库 bar.klib

链接到一个库请使用 -library ﹤库名﹥ or -l ﹤库名﹥ 标志。例如:

  1. $ kotlinc qux.kt -l bar

上述命令会由 qux.ktbar.klib 生成 program.kexe

cinterop 工具细节

cinterop 工具为原生库生成 .klib 包装作为其主要输出。 例如,使用 Kotlin/Native 发行版中提供的简单 libgit2.def 原生库定义文件

  1. $ cinterop -def samples/gitchurn/src/nativeInterop/cinterop/libgit2.def -compiler-option -I/usr/local/include -o libgit2

会得到 libgit2.klib

更多详情请参见 INTEROP.md

klib 库管理实用程序可以探查与安装库。

可以使用以下命令。

  1. $ klib contents ﹤库名﹥

探查库的簿记细节

  1. $ klib info ﹤库名﹥

将库安装到默认位置,使用

    将库从默认存储库中删除,使用

    上述所有命令都接受一个额外的 -repository ﹤目录﹥ 参数,用于指定与默认不同的存储库。

    1. $ klib ﹤命令﹥ ﹤库名﹥ -repository ﹤目录﹥

    几个示例

    首先创建一个库。 将微型库的源代码写到 kotlinizer.kt 中:

    1. package kotlinizer
    2. val String.kotlinized
    3. get() = "Kotlin $this"
    1. $ kotlinc kotlinizer.kt -p library -o kotlinizer

    该库已在当前目录中创建:

    1. $ ls kotlinizer.klib
    2. kotlinizer.klib

    现在来看看库的内容:

    1. $ klib contents kotlinizer

    可以将 kotlinizer 安装到默认存储库:

    1. $ rm kotlinizer.klib

    创建一个非常短的程序并写到 use.kt 中:

    1. import kotlinizer.*
    2. println("Hello, ${"world".kotlinized}!")
    3. }

    现在编译该程序链接到刚刚创建的库:

    1. $ kotlinc use.kt -l kotlinizer -o kohello

    并运行该程序:

    1. $ ./kohello.kexe
    2. Hello, Kotlin world!

    乐在其中!

    高级主题

    当给出 -library foo 标志时,编译器按照以下顺序搜索 foo 库:

    1. * 当前编译目录或者一个绝对路径。
    2. * `-repo` 标志指定的所有存储裤。
    3. * 安装在默认存储库(目前默认为 `~/.konan`,不过可以通过设置 **KONAN_DATA_DIR** 来更改)中的库。

    库格式

    Kotlin/Native 是包含预定义目录结构的 zip 文件, 具有以下布局:

    foo.klib 当解压为 foo/ 时会有:

    可以在安装的 klib/stdlib 目录中找到示例布局。