我有以下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文件有何不同?
我在ubuntu中使用apt-get安装了两个软件包之后发现了以下文件 -
/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
似乎不起作用。
答案 0 :(得分:9)
不同的libcurl4- * -dev软件包是libcurl构建的,用于使用不同的TLS后端。它们仍然提供(几乎)相同的API。它们是互斥的,无论您安装哪些软件包,都可以使用“-lcurl”链接libcurl。
curl / curl.h是一个头文件,无论你使用哪个TLS后端都是一样的。
libcurl是库的名称。
答案 1 :(得分:1)
当您使用HTTPS,FTPS或其他使用TLS的服务器通过存储中存在的CA签署的证书进行通信时,可以确保远程服务器确实是它声称的服务器。这样,您可以验证信任站点。
LibCurl具有三种TLS后端。
这三个库是用于建立安全链接并验证信任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证书和其他安全标准。