BLO9
Kotlin 등 개발 관련 포스팅합니다.
[자바에서 코틀린으로 - 8] Kotlin Navite로 C 라이브러리 사용 및 연동 - 기초
src/
    main/
        c_interop/
            stdio.def <- c 라이브러리 설정
        kotlin/
            Hello.kt <- 코틀린 파일
build.gradle

build.gradle

// 네이티브 라이브러리 저장소 설정
buildscript {
    repositories {
        mavenCentral()
        maven {
            url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
        }
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:+"
    }
}

// 네이티브 라이브러리 빌드 플러그인
apply plugin: 'konan'

// 네이티브 라이브러리 설정
konanInterop {
    stdio { } // c 라이브러리 설정 이름
}

konanArtifacts {
    Hello { // 코틀린 파일명(소문자는 안됨)
        useInterop 'stdio' // c 라이브러리 설정 이름
    }
}

stdio.def

headers = stdio.h stdlib.h string.h time.h
compilerOpts = -D_ANSI_SOURCE
---

static char * hello_message() {
    return "Hello, World!";
}

Hello.kt

// 네이티브 라이브러리
import kotlinx.cinterop.*
// 상동
import stdio.*

fun main(args: Array<String>) {

    // 위에 선언했던 함수
    println(hello_message()?.toKString()) // char[]/*을 스트링으로 변환

    // c random 초기화
    srand(time(null).toInt())
    (0..2).forEach {
        // c random 값.
        println("Random value ${rand()}")
    }

}

풀 소스 (github/park9eon/kotlin-with-c)[https://github.com/Park9eon/kotlin-with-c]