集成 libcurl(7.61.0)

Visual C++ 2017 集成 libcurl(7.61.0)

下载

  • 安装 Visual Studio 2017(自行解决)
  • curl-7.61.0(https://curl.haxx.se/libcurl/)
  • 解压 curl-7.61.0.zip

编译 libcurl 静态库(x86)

  • 打开VC解决方案 D:\SDK\curl-7.61.0\projects\Windows\VC15\curl-all.sln
  • 选择配置:LIB Release - LIB OpenSSL
  • libcurl工程
    • 包含目录:
      • C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt(否则会报 “stdio.h”: No such file or directory)
      • D:\SDK\openssl-1.1.0h\build\x86\include(OpenSSL)
  • curl工程
    • 包含目录:
      • C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt
    • 库目录:
      • D:\SDK\openssl-1.1.0h\build\x86\lib
      • C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\ucrt\x86
    • 附加依赖项:libcrypto.lib;libssl.lib;
      (注意:工程中的依赖的是老版OpenSSL:libeay32.lib;ssleay32.lib; 需要用新版OpenSSL代替)
  • 编译解决方案,生成 D:\SDK\curl-7.61.0\build\Win32\VC15\LIB Release - LIB OpenSSL\libcurl.lib

编译 libcurl 静态库(x64)

  • 与编译x86雷同
  • libcurl工程
    • 包含目录:
      • C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt
      • D:\SDK\openssl-1.1.0h\build\x64\include,OpenSSL
  • curl工程
    • 包含目录:
      • C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt
    • 库目录:
      • D:\SDK\openssl-1.1.0h\build\x64\lib
      • C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\ucrt\x64
    • 附加依赖项:libcrypto.lib;libssl.lib;
  • 编译解决方案,生成 D:\SDK\curl-7.61.0\build\Win64\VC15\LIB Release - LIB OpenSSL\libcurl.lib

VC2017 集成 libcurl 静态库

  • 包含目录:D:\SDK\curl-7.61.0\include

  • 库目录:D:\SDK\curl-7.61.0\build\Win32\VC15\LIB Release - LIB OpenSSL

  • 附加依赖项:libcurl.lib;wldap32.lib;

    • 另外需要附加OpenSSL的库:libcrypto.lib;libssl.lib;crypt32.lib;ws2_32.lib;
  • 使用静态库需要添加 CURL_STATICLIB 宏,或“C/C++>预处理器>预处理器定义”中添加

  • 示例代码

      #define CURL_STATICLIB
      #include 
      
      int main(int argc, char * argv[])
      {
          printf("%s\n", "main.cpp");
      
          CURL *curl;
          CURLcode res;
      
          curl = curl_easy_init();
          if (!curl)
          {
              printf("error\n");
              return 0;
          }
      
          curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com/");
          res = curl_easy_perform(curl);
      
          if (res != CURLE_OK)
              fprintf(stderr, "curl_easy_perform() failed: %s\n",
                  curl_easy_strerror(res));
      
          curl_easy_cleanup(curl);
      
          return 0;
      }
    

你可能感兴趣的:(集成 libcurl(7.61.0))