windows vs2005 libcurl使用整理

  1. 獲取源碼

下載 https://curl.haxx.se/download/curl-7.56.0.tar.gz 解壓 tar -zxvf curl-7.56.0.tar.gzhtml

  1. 使用vs2005打開工程,根據需求打開相應的工程

編譯libcurl和curl D:\curl-7.56.0\projects\Windows\VC8\curl-all.slnssh

若是隻編譯libcurl,只須要打開 D:\curl-7.56.0\projects\Windows\VC8\lib\libcurl.slncurl

  1. 編譯libcurl

編譯libcurl工程時輸出提示 1>d:\curl-7.56.0\lib\ssh.h(28) : fatal error C1083: 沒法打開包括文件:「libssh2.h」: No such file or directory 看一下預處理器定義 _DEBUG BUILDING_LIBCURL DEBUGBUILD USE_OPENSSL USE_LIBSSH2 HAVE_LIBSSH2_H測試

若是不須要不使用libssh,能夠將ssl相關的預處理宏,即刪除如下預處理宏: USE_OPENSSL USE_LIBSSH2 HAVE_LIBSSH2_Hurl

默認是編譯動態庫,若是須要編譯靜態庫,須要作如下處理: 解決方案配置修改爲 LIB Debug, 配置類型修改成靜態庫(.lib), 編譯libcurl,生成libcurld.libcode

  1. 測試

新建代碼測試工程, 添加D:\curl-7.56.0\include\curl文件夾內全部頭文件, 添加libcurld.lib, 使用靜態庫須要修改預處理器定義 CURL_STATICLIB 附加依賴項添加 ws2_32.lib wldap32.lib libcurld.liborm

#include <stdio.h>
#include "curl/curl.h"

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/");
    res = curl_easy_perform(curl);

    if(CURLE_OK == res) {
      char *ct;
      /* ask for the content-type */
      res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct);

      if((CURLE_OK == res) && ct)
        printf("We received Content-Type: %s\n", ct);
    }

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  return 0;
}

代碼出處見 https://curl.haxx.se/libcurl/c/example.html getinfo Use getinfo to get content-type after completed transfer.htm

方法二:ssl

使用cmakeget

相關文章
相關標籤/搜索