libcurl安装编译及QT配置https/http文件下载

1.curl下载

git clone https://github.com/curl/curl.git

2.curl的编译与安装

cd curl
./buidconf
./configure
make
make install

3.curl动态链接库与静态链接库查看

cd /usr/local/lib        ///动态库与静态库
cd /usr/local/include    ///头文件

4.QT中使用

1.创建工程应用;
2.在 .pro 文件中加上

LIBS += -lcurl

3.使用libcurl https下载

///
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <curl/curl.h>
#include <sys/stat.h>
#include <fcntl.h>
using std::string;
static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
  size_t written = fwrite(ptr, size, nmemb, (FILE *)stream);
  return written;
}

int downloadurl(std::string URL,std::string localDirectory)
{
  CURL *curl_handle;
  static const char *pagefilename = localDirectory.c_str();
  FILE *pagefile;

  curl_global_init(CURL_GLOBAL_ALL);

  /* init the curl session */
  curl_handle = curl_easy_init();

  /* set URL to get here */
  curl_easy_setopt(curl_handle, CURLOPT_URL, URL.c_str());

  /* Switch on full protocol/debug output while testing */
  curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1L);

  /* disable progress meter, set to 0L to enable it */
  curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS, 1L);

  /* send all data to this function  */
  curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_data);

  /* open the file */
  pagefile = fopen(pagefilename, "wb");
  if(pagefile)
  {
    /* write the page body to this file handle */
    curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, pagefile);
    /* get it! */
    curl_easy_perform(curl_handle);
    /* close the header file */
    fclose(pagefile);
  }
  /* cleanup curl stuff */
  curl_easy_cleanup(curl_handle);

  curl_global_cleanup();

  return 0;
}
void curlMainWindow::on_pushButton_clicked()
{
   downloadurl("https://img.zcool.cn/community/01ddc256eb71586ac7257d209712b7.jpg@1280w_1l_2o_100sh.jpg","./test.jpg");
}

///

5.curl卸载

apt-get remove curl

参考

https://blog.csdn.net/qianghaohao/article/details/51684862
https://blog.csdn.net/shmily138/article/details/85005195

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装libcurl库可以通过以下步骤完成: 1. 首先, 使用以下命令将libcurl的源代码克隆到本地: ``` git clone https://github.com/curl/curl.git ``` 2. 进入克隆的curl目录: ``` cd curl ``` 3. 对curl进行编译安装: ``` ./buildconf ./configure make make install ``` 4. 安装完成后, 可以使用以下命令查找动态链接库和头文件: - 动态链接库: ``` cd /usr/local/lib ``` - 头文件: ``` cd /usr/local/include ``` 在QT中使用libcurl库实现FTP文件上传和下载, 可以参考以下步骤: 1. 通过以下命令安装Qtlibcurl的环境: ``` // 安装QT5 // 安装minGW // 安装libcurl ``` 2. 在Qt项目中引入libcurl库: - 在.pro文件中添加以下行: ``` LIBS += -lcurl INCLUDEPATH += /usr/local/include ``` 3. 使用libcurl库实现FTP文件上传和下载功能: - 可以参考中的示例代码和文档来实现FTP文件上传和下载功能。 注意: 以上步骤仅提供了一个大致的指导, 在实际操作中还需根据具体情况进行一些调整和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [libcurl安装编译QT配置https/http文件下载](https://blog.csdn.net/thecentry/article/details/105937267)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Qt+libcurl实现FTP文件上传和下载](https://download.csdn.net/download/m0_37290589/11275704)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [qt5集成libcurl实现tftp和ftp的方法一:搭建环境](https://blog.csdn.net/xueyushenzhou/article/details/51702672)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值