The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:
Kotlin/Native is an LLVM backend for the Kotlin compiler, runtime implementation, and native code generation facility using the LLVM toolchain.
Kotlin/Native is primarily designed to allow compilation for platforms where virtual machines are not desirable or possible (such as iOS or embedded targets), or where a developer is willing to produce a reasonably-sized self-contained program without the need to ship an additional execution runtime.
Prerequisites: * install JDK for your platform, instead of JRE. The build requires
, which is not included in JRE; * on macOS install Xcode 11 (Xcode 11.5 is required to compile Kotlin/Native from sources) * on Fedora 26+
yum install ncurses-compat-libs
may be needed * on recent Ubuntu
apt install libncurses5
To compile from sources use following steps:
First, download dependencies:
Then, build the compiler and libraries:
To build with experimental targets support compile with
The build can take about an hour on a Macbook Pro. To run a shorter build with only the host compiler and libraries, run:
./gradlew dist distPlatformLibs
To include Kotlin compiler in composite build and build against it, use the
./gradlew dist -PkotlinProjectPath=path/to/kotlin/project
It's possible to include in a composite build both Kotlin compiler and Kotlin/Native Shared simultaneously.
After that, you should be able to compile your programs like this:
export PATH=./dist/bin:$PATH kotlinc hello.kt -o hello
For an optimized compilation, use
kotlinc hello.kt -o hello -opt
For tests, use:
To generate interoperability stubs, create a library definition file (refer to [
tool like this:
cinterop -def lib.def
See the provided samples and [
](https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md) for more details.
The Interop tool generates a library in the
library format. See [
](https://github.com/JetBrains/kotlin-native/blob/master/LIBRARIES.md)for more details on this file format.