Ubuntu18.04.2 amd64编译安装libcurl支持https

mac2024-03-25  27

1.准备工作,安装ssl库:

sudo apt-get install openssl sudo apt-get install libssl-dev

2.下载libcurl源代码:

wget https://curl.haxx.se/download/curl-7.65.3.tar.xz

3.解压并进入源代码目录:

tar xf curl-7.65.3.tar.xz cd curl-7.65.3

4.配置编译选项:

./configure --prefix=/usr \ --disable-static \ --enable-threaded-resolver \ --with-ca-path=/etc/ssl/certs

5.编译:

make

6.安装(需要root权限):

make install && rm -rf docs/examples/.deps && find docs \( -name Makefile\* -o -name \*.1 -o -name \*.3 \) -exec rm {} \; && install -v -d -m755 /usr/share/doc/curl-7.65.3 && cp -v -R docs/* /usr/share/doc/curl-7.65.3

至此,编译安装完成。

    写代码测试一下:

#include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com/"); /* Perform the request, res will get the return code */ res = curl_easy_perform(curl); /* Check for errors */ if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); /* always cleanup */ curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; }

编译:

gcc hello_https.c -l curl -o hello_https

运行:

./hello_https

运行结果截图: 附 自定义回调处理响应数据代码:

#include <stdio.h> #include <curl/curl.h> static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream) { if(stream == NULL) return 0; printf("%s", ptr); return size * nmemb; } int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com/"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); /* Perform the request, res will get the return code */ res = curl_easy_perform(curl); /* Check for errors */ if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); /* always cleanup */ curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; }
最新回复(0)