首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >curl/curl.h,libcurl,libcurl4-openssl-dev,libcurl4-nss-dev库之间的区别?

curl/curl.h,libcurl,libcurl4-openssl-dev,libcurl4-nss-dev库之间的区别?
EN

Stack Overflow用户
提问于 2014-01-16 08:21:43
回答 2查看 7.9K关注 0票数 11

我有以下的curl头,我仍然可以安装上面提到的libcurl4包-

代码语言:javascript
复制
kafka@metamorphosis:~$ ll /usr/include/curl/
total 200
drwxr-xr-x  2 root root  4096 Jan 16 13:29 ./
drwxr-xr-x 51 root root 20480 Jan 16 13:29 ../
-rw-r--r--  1 root root  7303 Dec 18 01:11 curlbuild.h
-rw-r--r--  1 root root 83928 Dec 18 01:11 curl.h
-rw-r--r--  1 root root  8934 Dec 18 01:11 curlrules.h
-rw-r--r--  1 root root  2741 Dec 18 01:11 curlver.h
-rw-r--r--  1 root root  3472 Dec 18 01:11 easy.h
-rw-r--r--  1 root root  2790 Dec 18 01:11 mprintf.h
-rw-r--r--  1 root root 13836 Dec 18 01:11 multi.h
-rw-r--r--  1 root root  1330 Dec 18 01:11 stdcheaders.h
-rw-r--r--  1 root root 36918 Dec 18 01:11 typecheck-gcc.h

libcurl4-openssl-dev,,,,,,,,,都是如何区别的?

在我使用apt-get在ubuntu安装了这两个包之后,我注意到了以下文件-

代码语言:javascript
复制
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.3
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.3.0
/usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0
/usr/lib/x86_64-linux-gnu/libcurl.so.4
/usr/lib/x86_64-linux-gnu/libcurl.la
/usr/lib/x86_64-linux-gnu/libcurl.so.3
/usr/lib/x86_64-linux-gnu/libcurl.a
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
/usr/lib/x86_64-linux-gnu/libcurl.so
/usr/lib/x86_64-linux-gnu/pkgconfig/libcurl.pc

现在,如果我有一个代码行为- #include<curl/curl.h> ,我如何编译它呢?

gcc -L /usr/include/curl/ -lcurl nginx-isolated.c似乎不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-16 10:44:53

不同的libcurl 4-*-dev包是为使用不同的TLS后端而构建的libcurl。它们仍然提供(几乎)相同的API。它们是相互排斥的,您可以使用libcurl与"-lcurl“链接,不管您安装的是哪个包。

curl/curl.h是一个头文件,无论您使用哪个TLS后端,它都是相同的。

libcurl是图书馆的名字。

票数 12
EN

Stack Overflow用户

发布于 2020-11-27 19:29:19

当您使用HTTPS、FTPS或其他TLS进行通信时--使用使用由存储中的CA签名的证书的服务器,您可以确保远程服务器确实是它声称的服务器。这样您就可以验证信任站点。

LibCurl有三种口味的TLS后端。

  • 用NSS验证证书
  • 基于OpenSSL的证书验证
  • 基于GnuTLS的证书验证

这三个库都是用于建立安全链接和验证信任CA证书的库,但每个库都有各自的特点、优缺点。

OpenSSL是用于传输层安全(TLS)和安全套接字层(SSL)协议的健壮、商业级别和功能齐全的工具包。它也是一个通用的密码库.

GnuTLS是一个实现SSL、TLS和DTLS协议及相关技术的安全通信库。它提供了一个简单的C语言应用程序编程接口(API)来访问安全通信协议,以及解析和编写X.509、PKCS #12和其他所需结构的API。

网络安全服务( Network ,NSS)是一组库,旨在支持跨平台开发启用安全的客户端和服务器应用程序。使用NSS构建的应用程序可以支持SSL v3、TLS、PKCS #5、PKCS #7、PKCS #11、PKCS #12、S/MIME、X.509 v3证书和其他安全标准。

非常重要的是,在编程时,您必须选择要使用的单个库,因为不可能将它们组合在一起。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21156604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档