【libcurl】Visual Studio 2017編譯和配置libcurl開發環境

一、libcurl介紹
libcurl是免費的客戶端URL傳輸庫,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP。libcurl支持SSL證書, HTTP POST、HTTP PUT、FTP上傳、基於HTTP表單的上傳、代理、Cookie、用戶+口令認證(基本、摘要、NTLM、協商、Kerberos)、文件續傳、HTTP代理隧道等!php

libcurl是高度可移植的,它構建和工做在許多平臺上,包括Solaris、NETBSD、FreeBSD、OpenBSD、Darwin、HPUX、IIX、AIX、TUR6四、Linux、UNIX、HUD、Windows、AMIGA、OS/二、BeOs、Mac OS X、ULTRIX、QNX、OpenVMS、RISC OS、Novell NETWORD、DOS等等。html

libcurl是免費的,線程安全,IpV6兼容,功能豐富,良好支撐,快速,文檔全面,並已被許多知名的,大的和成功的公司使用。c++

主頁地址:https://curl.haxx.se/libcurl/windows

二、環境
Windows 10(1803)
Visual Studio 2017(15.7.3)
三、編譯libcurl
下載libcurl,地址:https://curl.haxx.se/download.html 
我使用的是curl-7.60.0。 安全


解壓文件,進入目錄curl-7.60.0,運行buildconf.batcurl

進入curl-7.60.0目錄下的winbuild目錄,複製路徑
進行x64編譯 
在開始菜單中找到Visual Studio 2017文件夾,選擇以下: 
 
打開命令窗口以下: 測試

在命令窗口輸入以下命令:fetch

cd D:\ThirdCode\curl-7.60.0\winbuild #根據本身的路徑輸入
d:
nmake /f Makefile.vc mode=static VC=14 MACHINE=x64 DEBUG=no
1
2
3
我設置的是在vc14下靜態release編譯。 
編譯參數設置根據winbuild目錄下BUILD.WINDOWS.txt自行設置,具體參數以下:ui

nmake /f Makefile.vc mode=<static or dll> <options>url

where <options> is one or many of:
  VC=<6,7,8,9,10,11,12,14,15>    - VC versions
  WITH_DEVEL=<path>              - Paths for the development files (SSL, zlib, etc.)
                                   Defaults to sibbling directory deps: ../deps
                                   Libraries can be fetched at http://windows.php.net/downloads/php-sdk/deps/
                                   Uncompress them into the deps folder.
  WITH_SSL=<dll or static>       - Enable OpenSSL support, DLL or static
  WITH_NGHTTP2=<dll or static>   - Enable HTTP/2 support, DLL or static
  WITH_MBEDTLS=<dll or static>   - Enable mbedTLS support, DLL or static
  WITH_CARES=<dll or static>     - Enable c-ares support, DLL or static
  WITH_ZLIB=<dll or static>      - Enable zlib support, DLL or static
  WITH_SSH2=<dll or static>      - Enable libSSH2 support, DLL or static
  ENABLE_SSPI=<yes or no>        - Enable SSPI support, defaults to yes
  ENABLE_IPV6=<yes or no>        - Enable IPv6, defaults to yes
  ENABLE_IDN=<yes or no>         - Enable use of Windows IDN APIs, defaults to yes
                                   Requires Windows Vista or later
  ENABLE_WINSSL=<yes or no>      - Enable native Windows SSL support, defaults to yes
  GEN_PDB=<yes or no>            - Generate Program Database (debug symbols for release build)
  DEBUG=<yes or no>              - Debug builds
  MACHINE=<x86 or x64>           - Target architecture (default is x86)
  CARES_PATH=<path to cares>     - Custom path for c-ares
  MBEDTLS_PATH=<path to mbedTLS> - Custom path for mbedTLS
  NGHTTP2_PATH=<path to HTTP/2>  - Custom path for nghttp2
  SSH2_PATH=<path to libSSH2>    - Custom path for libSSH2
  SSL_PATH=<path to OpenSSL>     - Custom path for OpenSSL
  ZLIB_PATH=<path to zlib>       - Custom path for zlib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
等待編譯結束後,關閉命令窗口。 
編譯後的頭、靜態文件等見curl-7.60.0目錄下builds目錄 


四、在Visual Studio 2017中使用
建立vc++項目
把前面編譯的lib和include目錄添加至項目,以下 

把libcurl_a.lib、ws2_32.lib、winmm.lib、wldap32.lib、Crypt32.lib、Normaliz.lib添加至項目,以下 

預處理器定義添加CURL_STATICLIB;_CRT_SECURE_NO_WARNINGS 

運行庫設置 

運行例子  測試例子:https://curl.haxx.se/libcurl/c/fileupload.html  例子中須要修改  CURLINFO_TOTAL_TIME_T(適用curl-7.60.1版本) 改成 CURLINFO_TOTAL_TIME。  注意修改下圖紅框內容  第一紅框中爲本地文件路徑(例如:D:/TestData/1驕傲.mp3);  第二紅框中爲目的文件路徑(例如:file:///e:/1驕傲.mp3); 

相關文章
相關標籤/搜索