【发布时间】:2021-07-24 00:19:09
【问题描述】:
在哪里可以找到构建 libcurl-gnutls.so 的源代码和说明?
我正在做一个需要 libcurl-gnutls.so 的项目。我需要从源代码构建它 - 我不能简单地使用“apt-get install libcurl”安装它。不幸的是,我的 google-fu 让我失望了,我在任何地方都找不到源代码存储库或构建 libcurl-gnutls.so 的说明。
这是我发现的:
Linux-from-scratch 有详细记录的构建 libcurl.so 的说明,此处为:https://www.linuxfromscratch.org/blfs/view/svn/basicnet/curl.html。这让我可以使用 gnutls 构建 libcurl.so,但不能使用 libcurl-gnutls.so。
curl 网站 (curl.se) 在此处提供了有关其各种选项的详细说明:https://curl.se/docs/install.html。这些向我展示了如何使用 gnutls 构建 libcurl,但最终产品仍然是 libcurl.so,而不是 libcurl-gnutls.so。
当我在我的项目上运行 ldd -r 时,它会识别它需要的函数(curl_easy_init、curl_easy_setopt、curl_easy_perform 和 curl_easy_cleanup)。我可以在 libcurl.so 和预构建的 libcurl-gnutls.so 中找到这些符号。这让我怀疑 libcurl-gnutls.so 是 libcurl.so,以不同的名称发布。但是,将 libcurl.so 重命名为 libcurl-gnutls.so 并不足以满足依赖项要求。我可以尝试更改 libcurl 项目以将其名称和版本设置为 libcurl-gnutls(并不是说我知道该怎么做——我会四处寻找直到弄清楚),但我不知道这有多合适。
我在 Stack Overflow 上发现了另一个关于 libcurl-gnutls (How to create lib curl-gnutls.so.4) 的问题,但答案是通过 apt-get install 安装预构建版本,我不允许这样做。
【问题讨论】:
-
20.04 packages.ubuntu.com/source/focal-updates/curl → → archive.ubuntu.com/ubuntu/pool/main/c/curl/… 。 .... archive.ubuntu.com/ubuntu/pool/main/c/curl/… 中有一个补丁
debian/patches/90_gnutls.patch.....configure --with-gnutls --without-ssl -
谢谢@KnudLarsen,但补丁文件似乎不足。它仍然构建为 libcurl.so.4,并且在内部仍然将 SONAME 设置为 libcurl.so.4。
-
我得到了 lib/
{libcurl.a,libcurl-gnutls.a,libcurl-gnutls.la,libcurl-gnutls.so,libcurl-gnutls.so.4,libcurl-gnutls.so.4.6.0,libcurl.la,libcurl.so,libcurl.so.4,libcurl.so.4.6.0,pkgconfig/}.