[Kotlin/Native] Ktor Native 客户端环境搭建(Widows下解决lld: unable to find -lcurl)
作者:互联网
Kotlin/Native使用MSYS + mingw-w64 + Clang来进行编译和链接,适合有一定C/C++经验的开发者。
Ktor是Jetbrains的Kotlin网络库,可以用来做服务器和客户端。在客户端方法,Ktor支持以cURL作为引擎构建Native程序。
但官网的教程语焉不详,而且在Windows上难以正常运行。会报错如下:
lld: error: unable to find library -lcurl
- 运行失败,返回值非0
总的来讲,Kotlin/Native和Kotlin/JS可以帮助Kotlin摆脱JVM的桎梏,但相关生态仍非常不完善。
步骤
-
使用IDEA Community创建Kotlin/Native项目
-
配置Gradle
val ktor_version = "2.0.0"
sourceSets {
val nativeMain by getting {
dependencies {
implementation(kotlin("stdlib-common"))
implementation("io.ktor:ktor-client-core:$ktor_version")
implementation("io.ktor:ktor-client-curl:$ktor_version")
implementation("io.ktor:ktor-client-core-mingwx64:$ktor_version")
implementation("io.ktor:ktor-client-curl-mingwx64:$ktor_version")
}
}
val nativeTest by getting
}
-
添加lib文件
从官网下载curl
复制压缩包中的lib文件夹下的两个静态库文件libcurl.a
和libcurl.dll.a
到~\.konan\dependencies\msys2-mingw-w64-x86_64-1\lib
文件夹中 -
添加dll文件
将压缩包中的bin文件夹下的动态链接库libcurl-x64.dll
复制到编译输出的build\bin\native\debugExecutable
文件夹中(和编译输出的exe同目录)
运行结果
gradle runDebugExecutableNative
附
环境:
项目 | 值 |
---|---|
OS | Windows 10 x64 21H2 |
Kotlin | 1.6.21 |
Gradle | 7.4.1 |
Ktor | 2.0.0 |
cURL | 7.82.0_4 |
konan依赖 | libffi-3.3-windows-x64-1 lld-12.0.1-windows-x64 lldb-2-windows llvm-11.1.0-windows-x64-essentials msys2-mingw-w64-x86_64-1 |
标签:Ktor,ktor,implementation,Kotlin,x64,version,Widows,Native 来源: https://www.cnblogs.com/winterreisender/p/16173568.html