Библиотеки платформы
Для предоставления доступа к службам родной операционной системы пользователя, дистрибутив Kotlin/Native включает набор предварительно скомпилированных библиотек, специфичных для каждого целевого устройства. Мы называем их Библиотеками платформы.
Связывания POSIX
Для всех целевых устройств на базе Unix или Windows (включая Android и iOS) мы предоставляем платформенную библиотеку POSIX. Она содержит связывания с реализацией платформы стандарта POSIX.
Для использования библиотеки, просто импортируйте её:
import platform.posix.*
Единственным целевым устройством, для которого она недоступна, является WebAssembly.
Обратите внимание, что содержание platform.posix НЕ идентично на разных платформах, так же как и различные реализации POSIX немного отличаются.
Популярные родные библиотеки
Существует много других библиотек платформы, доступных для целевых устройств и кросс-компиляции. Дистрибутив Kotlin/Native предоставляет доступ к OpenGL, zlib и другим популярным родным библиотекам на поддерживаемых платформах.
На платформах Apple предоставляется библиотека objc, обеспечивающая взаимодействие с Objective-C.
Подробности можно найти в содержимом dist/klib/platform/$target дистрибутива.
Доступность по умолчанию
Пакеты из библиотек платформы доступны по умолчанию. Для их использования не нужно указывать специальные флаги линковки. Компилятор Kotlin/Native автоматически определяет, какие библиотеки платформы были использованы и автоматически связывает необходимые библиотеки.
С другой стороны, библиотеки платформы в дистрибутиве — это всего лишь оболочки и связывания с родными библиотеками. Это означает, что сами родные библиотеки (.so, .a, .dylib, .dll и т. д.) должны быть установлены на машине.
Примеры
Репозиторий Kotlin/Native содержит широкий спектр примеров, демонстрирующих использование библиотек платформы. Подробности можно найти в примерах.
© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/native-platform-libs.html