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

摘要:
1.准备安装ssl库:sudoapt getinstallopensslsudoapt getinstalllibssl-dev2.下载libcurl源代码:wgethttps://curl.haxx.se/download/curl-7.65.3.tar.xz3.解压缩并输入源代码目录:tarxfcurl-7.65.3.tar。xzcdcurl-7.65.34.配置编译选项:./config

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

sudo apt-get installopenssl
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
",
              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

运行结果截图:

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

附 自定义回调处理响应数据代码:

Ubuntu18.04.2 amd64编译安装libcurl支持https第2张Ubuntu18.04.2 amd64编译安装libcurl支持https第3张
#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
",
              curl_easy_strerror(res));
    /*always cleanup */
    curl_easy_cleanup(curl);
  }
  curl_global_cleanup();
  return 0;
}
View Code

免责声明:文章转载自《Ubuntu18.04.2 amd64编译安装libcurl支持https》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇adb shell 命令之----pmC#抽象类下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux编译安装时常见错误解决办法

linux编译安装时常见错误解决办法 This article is post on https://coderwall.com/p/ggmpfa 原文链接:http://www.bkjia.com/PHPjc/1008013.html configure: error: xslt-config not found. Please reinstall t...

curl c/c++ api接口使用例程 Mr_Von的专栏 博客频道 CSDN.NET

curl c/c++ api接口使用例程 - Mr_Von的专栏 - 博客频道 - CSDN.NET curl c/c++ api接口使用例程 2008-11-18 16:102761人阅读评论(0)收藏举报 先总结一下本站与curl相关的文章: linux下php扩展cURL的安装 cURL 中文用户手册(一) cURL中文用户手册(二) cur...

influxdb简单使用

之前对influxdb有一个简单的了解和入门的使用,近期由于想使用influxdb做一点东西玩玩,又要捡起influxdb。本篇就针对influxdb的数据库、表的概念,增删改查操作、RESTful操作等做下总结。 一、influxdb与传统数据库的比较 库、表等比较: influxDB 传统数据库中的概念 database 数据库 meas...

Fiddler的详细介绍

Fiddler的详细介绍 一、Fiddler与其他抓包工具的区别 1、Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存; 2、Wireshark是通用的抓包工具,能获取HTTP,也能获取HTT...

LNMP安装Let’s Encrypt 免费SSL证书方法:自动安装与手动配置Nginx

前几天介绍了最新StartSSL免费SSL申请与配置,很多人看到部落介绍SSL证书安装时总是推荐了OneinStack,因为OneinStack提供了一键添加和配置Let's Encrypt 免费SSL证书的脚本,你在创建虚拟主机绑定域名就可以一步安装好SSL。 其实LNMP(即LNMP.org版LNMP脚本)更新到了1.4版本后已经增加了增加ssl选项...

go get 命令下载gin包时出现报错 进击的石头

使用go get 命令下载gin框架时报错,截图如下: 报错产生原因有两个: 第一个:通过查找原因,gin的个别包无法下载是被墙了 第二个:go在1.13版本后,默认开启了GOSUMDB=sum.golang.org,而这个网址sum.golang.org 在国内是无法访问,故需要关闭 解决办法: 第一步:关闭GOSUMDB 命令:【go env -w...