可用:zlib-1.2.11.tar+openssl-1.0.2l.tar+curl-7.54.1.tar纯静态编译

来源:互联网 发布:国家数据 编辑:程序博客网 时间:2024/06/09 16:59

小弟不才,参考网上的方法测试千万次,折腾两天终于完美解决,各位码界大神求轻喷!


废话不多说,贴出方法,避免后来学习的兄弟走弯路。


一、zlib编译:

1.打开VS2012 x64 Native Tools Command Prompt

2.cd /d D:\curl\zlib-1.2.11\contrib\masmx64

3.bld_ml64.bat

4.cd /d D:\curl\zlib-1.2.11\contrib\vstudio\vc12

5.打开zlibvc.sln

6.华丽的编译


二、openssl编译

1.打开VS2012 x64 Native Tools Command Prompt

2.perl Configure VC-WIN64A no-asm --prefix:D:\curl\openssl-1.0.2l

3.do_win64a.bat

4.nmake -f ms\nt.mak -a

5.nmake -f ms\nt.mak install(这里一定要注意install,不然OpenSSL那个头文件内容是一堆垃圾)

三、Curl编译

1.打开VS2012 x64 Native Tools Command Prompt

2.nmake /f Makefile.vc mode=static WITH_SSL=static WITH_ZLIB=static DEBUG=yes MACHINE=x64


四、测试

#include "stdafx.h"#include "curl\curl.h"#include <string>//#pragma comment(lib,"libcurl_a.lib")#pragma comment(lib,"libcurl_a_debug.lib")int _tmain(int argc, _TCHAR* argv[]){  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_SSL_VERIFYPEER, false);    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);    /* 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\n",              curl_easy_strerror(res));    curl_easy_cleanup(curl);  }  curl_global_cleanup();getchar();return 0;}

注意:

无法加载*** 解决办法:项目->属性->c\c++ ->预处理器 

添加 :BUILDING_LIBCURL
HTTP_ONLY

debug模式下可能需要设置:连接器->命令行:    /NODEFAULTLIB:msvcrt.lib 


以上所有步骤均为测试通过,有BUG欢迎联系本人



原创粉丝点击