Windows上的Kotlin本机libcurl示例

时间:2018-10-18 09:31:53

标签: kotlin kotlin-native

我正在尝试从JetBrains学习Kotlin Native如何使用本教程:https://kotlinlang.org/docs/tutorials/native/interop-with-c.html

但是这些教程仅适用于macOS和Linux。有时我使用Windows计算机,并且想知道它在那里的工作原理。

如何在Windows中添加libcurl库,如何将其添加到<div class="container"> <div class="item">Hello World</div> <div class="item">Keep Learning</div> </div>文件中?

在任何地方都没有解释。

5 个答案:

答案 0 :(得分:2)

我不认为它现在已被覆盖。这个想法仍然是一样的,您应该能够使它起作用。第一步是从https://curl.haxx.se/libcurl/本地下载并构建libcurl。有关如何构建它的说明和文档。我建议选择Windows自己的SSL实现。

完成构建后,您将同时具有包含和库。注意,在Windows上,您将始终有一个静态库。即使将curl生成为动态库(DLL),也将具有用于链接的生成的静态库。 DLL更易于构建和使用。真正的静态库更好,因为您在Kotlin / Native程序二进制文件中没有依赖项。到那时,教程说明应该起作用了。

答案 1 :(得分:2)

有关如何在Kotlin / Native中使用动态构建的libcurl(又名DLL)的更详细的分步说明。

https://jonnyzzz.com/blog/2018/10/29/kn-libcurl-windows/

答案 2 :(得分:1)

对于Windows,如果仅需要基本的HTTP通信,则也可以尝试WinINet API,它是Windows的一部分,因此不需要依赖项。 libcurl库没有麻烦。

请参阅我的示例如何将WinInet API与Kotlin MPP一起使用:https://github.com/localazy/kotlin-mpp-wininet

对于macOS和Linux,无需手动解决libcurl的麻烦,只需使用ktor客户端即可:https://ktor.io/clients/index.html

答案 3 :(得分:0)

您需要安装MSYS2,然后在MSYS2控制台中安装libcurl:

$ pacman -S mingw-w64-x86_64-curl

请参见https://github.com/JetBrains/kotlin-native/pull/1499

答案 4 :(得分:-2)

我也在研究Kotlin,花了很多小时才意识到如何处理def文件,包含文件和静态库。

我举了一个关于如何在kotlin-native上使用静态库(带有gzip的curl和由mingw编译的SSL支持)的示例。这样,您无需将dll文件随应用程序一起提供

https://github.com/carlosrafp/Libcurl-Kotlin-Native-standalone

在libcurl.def文件上,您可以看到:

headers = curl/curl.h   // path to curl header
libraryPaths = src/nativeInterop/cinterop  // path to your static library
staticLibraries = libcurl.a // the static library
linkerOpts.mingw = -lws2_32 -lwldap32 // linking dependences

我基于jonnyzzz的精彩帖子:

https://jonnyzzz.com/blog/2018/10/29/kn-libcurl-windows/