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

curl/curl.h、libcurl、libcurl4-openssl-dev和libcurl4-nss-dev库之间的区别?,c,curl,libcurl,C,Curl,Libcurl,我有以下curl头,我仍然可以安装上面提到的libcurl4包- 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

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

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和
libcurl4-nss-dev
之间以及与这些curl.h文件之间有何不同?

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

/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
,我该如何编译它呢?

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

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

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


libcurl是库的名称。

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

LibCurl有三种TLS后端

  • 使用NSS进行证书验证
  • 用OpenSSL进行证书验证
  • 使用GnuTLS进行证书验证
其中三个是用于建立安全链接和验证信任CA证书的库,但每个库都有自己的功能和优缺点

OpenSSL是一款功能强大的商业级工具包,用于传输层安全(TLS)和安全套接字层(SSL)协议。它也是一个通用密码库

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


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

使用“似乎不起作用”是什么意思?如果您有错误,请编辑您的问题以将其包括在内。此外,请尝试将库列表放在源代码之后,例如,
gcc nginx isolated.c-lcurl
@JoachimPileborg:gcc不包括curl库<代码>gcc nginx隔离.c-lcurl已工作:你能回答问题的前半部分吗?这“起作用”,但我仍然不理解它的机制。我的意思是这一个的可能重复-
libcurl4 openssl dev和libcurl4 nss dev之间以及与这些curl.h文件之间有什么不同?
如果说
libcurl*-dev
包是
libcurl
的包装,那有多正确,和
curl.h
curlver.h
等是(未构建?
libcurl
库的头。它与此不同。我更愿意说libcurl*-dev是提供不同实例或风格的libcurl的包。