ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[Kotlin/Native] Ktor Native 客户端环境搭建(Widows下解决lld: unable to find -lcurl)

2022-04-21 12:31:13  阅读:303  来源: 互联网

标签:Ktor ktor implementation Kotlin x64 version Widows Native


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的桎梏,但相关生态仍非常不完善。

步骤

  1. 使用IDEA Community创建Kotlin/Native项目

  2. 配置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
    }

  1. 添加lib文件
    从官网下载curl
    复制压缩包中的lib文件夹下的两个静态库文件libcurl.alibcurl.dll.a~\.konan\dependencies\msys2-mingw-w64-x86_64-1\lib文件夹中

  2. 添加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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有