プラットフォームライブラリ
オペレーティングシステムのネイティブサービスへのアクセスを提供するために、Kotlin/Nativeディストリビューションには、各ターゲットに固有のビルド済みライブラリのセットが含まれています。これらは_プラットフォームライブラリ_と呼ばれます。
プラットフォームライブラリのパッケージはデフォルトで利用可能です。これらを使用するために追加のリンクオプションを指定する必要はありません。Kotlin/Nativeコンパイラは、どのプラットフォームライブラリがアクセスされているかを自動的に検出し、必要なものをリンクします。
しかし、コンパイラディストリビューション内のプラットフォームライブラリは、ネイティブライブラリへの単なるラッパーとバインディングに過ぎません。つまり、ネイティブライブラリ自体(.so
、.a
、.dylib
、.dll
など)をローカルマシンにインストールする必要があります。
POSIXバインディング
Kotlinは、AndroidとiOSを含むすべてのUNIXベースおよびWindowsベースのターゲット向けにPOSIXプラットフォームライブラリを提供します。これらのプラットフォームライブラリには、POSIX標準に準拠したプラットフォームの実装へのバインディングが含まれています。
ライブラリを使用するには、プロジェクトにインポートします。
import platform.posix.*
platform.posix
の内容は、POSIXの実装のバリエーションによりプラットフォーム間で異なります。
各サポートされているプラットフォームのposix.def
ファイルの内容は、以下で確認できます。
POSIXプラットフォームライブラリは、WebAssemblyターゲットでは利用できません。
主要なネイティブライブラリ
Kotlin/Nativeは、OpenGL、zlib、Foundationなど、様々なプラットフォームで一般的に使用される主要なネイティブライブラリのバインディングを提供します。
Appleプラットフォームでは、Objective-C APIとの相互運用性を可能にするために、objc
ライブラリが含まれています。
Kotlin/Nativeターゲットで利用可能なネイティブライブラリは、セットアップに応じて、コンパイラディストリビューション内で探索できます。
スタンドアロンのKotlin/Nativeコンパイラをインストールした場合:
- コンパイラディストリビューションを含む解凍されたアーカイブ(例:
kotlin-native-prebuilt-macos-aarch64-2.1.0
)に移動します。 klib/platform
ディレクトリに移動します。- 対応するターゲットのフォルダを選択します。
- コンパイラディストリビューションを含む解凍されたアーカイブ(例:
IDEでKotlinプラグインを使用している場合(IntelliJ IDEAおよびAndroid Studioにバンドルされています):
コマンドラインツールで、以下のコマンドを実行して
.konan
フォルダに移動します。none~/.konan/
none%\USERPROFILE%\.konan
Kotlin/Nativeコンパイラディストリビューション(例:
kotlin-native-prebuilt-macos-aarch64-2.1.0
)を開きます。klib/platform
ディレクトリに移動します。対応するターゲットのフォルダを選択します。
各サポートされているプラットフォームライブラリの定義ファイルを探索したい場合は、コンパイラディストリビューションフォルダ内で
konan/platformDef
ディレクトリに移動し、必要なターゲットを選択してください。