windows编译libcurl(openssl+zlib)(使用vc编译)

朝闻道 朝闻道     2022-09-18     667

关键词:

解压

为了方便安装,在D盘根目录下新建一个名为libcurl-ssl的文件夹,将下载的三个压缩包解压到该文件夹。
在 curl-7.54.0 -> lib 下新建文件夹openssl用来存放openssl的头文件。

zlib编译:
  1. zlib-1.2.11contribvstudiovc14zlibvc.sln,编译release版本。
  2. 在生成的x86libDllRelease文件夹中有zlibwapi.dll和zlibwapi.lib文件
ActiveState安装:

打开安装包,选择Modify默认安装或Repair修改安装路径都可以

openssl编译:

这是最麻烦、最容易出错的一环了,因为他没有项目文件,只能通过命令行来编译。

  1. 在开始菜单中找到vs自带的 VS2015 x86 本机工具命令提示符
  2. 使用cd命令进入到openssl-1.0.2k文件夹中
  3. 命令行键入 perl Configure VC-WIN32 no-asm
  4. 命令行键入 msdo_ms.bat
  5. 命令行键入 nmake -f ms/ntdll.mak

等待差不多五分钟,只要不出现“stop”,安全地执行到结束,就算成功。
一旦中间出了差错,最好是把文件夹也删了,重新解压、配置编译,如果你留有编译失败的半成品,它可能会告诉你“无法解析XXX”。

将 openssl-1.0.2k -> inc32 -> openssl 所有的.h 和 openssl-1.0.2k -> out32dll 的 libeay32.lib、libeay32.dll、ssleay32.lib、ssleay32.dll 一起复制到 curl-7.54.0 -> lib -> openssl 中

libcurl编译:

编译平台选择 DLL Debug - DLL OpenSSL

  1. curl-7.54.0 ->projects -> Windows -> VC14 -> curl-all.sln,可能会提示升级工程,确定即可。
  2. 将 libcurl 设为启动项目,选择 libcurl -> Resource Files -> libcurl.rc,右键“移出”,它记录着版本信息,只会增大文件,可以移出掉。
  3. 选择 属性 -> C/C++ -> 预处理器 -> 预处理器定义,将"BUILDING_LIBCURL"改成"CURL_STATICLIB"。这样那些接口函数就不会被声明为导出函数了。
  4. 选择 属性 -> 链接器 -> 常规 -> 附加库目录 添加 ........libopenssl,指向curl-7.54.0 -> lib -> openssl
  5. 选择 属性 -> 链接器 -> 输入 -> 附加依赖项 添加 libeay32.lib;ssleay32.lib;ws2_32.lib;wldap32.lib; 前两个是为了OpenSSL,后两个是CURL必须依赖的。

在编译成功后 curl-7.54.0 -> build -> Win32 -> VC14 -> DLL Debug - DLL OpenSSL 文件夹中会生成有 libcurld.dll 和 libcurld.lib(注意名字不是libcurl)。

创建控制台应用程序

例如创建的项目文件夹位于 D: -> LibcurlTest,编译版本为debug X86。

  1. 新建 LibcurlTest -> include文件夹,将 curl-7.54.0 -> include 目录下的curl文件夹,复制过去。
  2. 新建 LibcurlTest -> lib 文件夹,在lib下新建debug文件夹。将libcurl编译的 libcurld.dll 和 libcurld.lib 复制到debug。
  3. 将libcurld.dll和之前OpenSSL生成的 libeay32.dll、ssleay32.dll 各复制一份到项目文件夹下,否则会报错。
  4. 选择 配置属性 -> CC++ -> 预处理器 -> 预处理器定义,添加CURL_STATICLIB。
  5. 属性中的 附加包含目录、附加库目录和附加依赖项就在代码中实现。
测试代码
#include "stdafx.h"
#include "../include/curl/curl.h"     
#pragma comment(lib,"../lib/debug/libcurld.lib")    
int main()
{
    CURL *curl;
    CURLcode res;
    curl = curl_easy_init();
    if (curl)
    {
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, true);
        curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com");
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        res = curl_easy_perform(curl);
        if (res != CURLE_OK)
        {
            fprintf(stderr, "curl_easy_perform() failed: %s
", curl_easy_strerror(res));
        }
        curl_easy_cleanup(curl);
    }
    system("pause");
    return 0;
}

运行结果:在控制台中显示 https://www.baidu.com 网页源码,如果没有OpenSSL的编译和链接,是不能访问https的。但是显示中文部分是乱码,本人水平有限,认为这是C++输出的问题,我将源码保存成txt打开是没问题的。

注:本文整理修改自互联网。



作者:李察丶
链接:http://www.jianshu.com/p/2a92e1f30d0c
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

libcurl支持openssl交叉编译mipsrt5350

...p;admin | 11月18日0CommentAdvertisement历经半个月终于把libcurl库编译出来,参考网上很多博客,最终把自己要的库编译出来。首先说明一下,我要这个库的目的。我在RT5350上跑openWRT需要向服务器提交数据,用http协议,且需要ssl... 查看详情

使用 C++/libcurl/openssl 从应用程序保护服务器通信

】使用C++/libcurl/openssl从应用程序保护服务器通信【英文标题】:SecureServerCommunicationfromapplicationusingC++/libcurl/openssl【发布时间】:2017-03-1610:02:18【问题描述】:我正在使用C++(跨平台;Windows、Mac和Linux)开发应用程序,该应用程... 查看详情

源码编译libcurl库

操作系统为 Ubuntu18.04.1LTSgcc版本为 gccversion7.5.0(Ubuntu7.5.0-3ubuntu1~18.04)libcurl版本curl-7.71.1.tar.gzopenssl版本openssl1.1.1d1.首先下载libcurl库的源代码包  curl-7.71.1.tar.gz,解压;2.下载openssl1.1.1 查看详情

mingw64how-to(内含编译openssl,libjpeg,libcurl等例子)

IndexofcontentsSettinguptheMinGW64environmentStep1)buildinglibiconvStep2)buildinglibzStep3)buildinglibjpegStep4)buildinglibpngStep5)buildinglibtiffStep6)buildinglibprojStep7)buildinglibgeotiffStep8)bu 查看详情

windows下编译libcurl

因为linux平台采用了libcurl,有一个程序移植到到windows平台,再linux采用libcurl。在windows下准备也采用该库。在网上搜索了几位同行写的,步骤写的都不是太清楚,导致我走了不少弯路。本文将以详细的步骤,介绍libcurl的编译。&nb... 查看详情

使用 OpenSSL 构建 LibCurl 会导致链接器错误

】使用OpenSSL构建LibCurl会导致链接器错误【英文标题】:BuildingLibCurlwithOpenSSLcauseslinkererrors【发布时间】:2011-05-1420:39:45【问题描述】:我已经尝试构建支持SSL的LibCurl2天了,我已经关注了互联网上的所有指南,并且在谷歌上搜索... 查看详情

visualstudio2015编译生成支持https协议的libcurl静态库(代码片段)

由于之前的工作需要使用libcurl开源项目库在各种研究后发现无法使用HTTPS协议后来经过各种翻阅文档,发现需要OpenSSL支持,这个需要自己下载并自己编译生成lib或者dll 至于OpenSSL的编译我就不做过多的介绍直接贴一个安装的... 查看详情

windows编译openssl

安装说明參考openssl源代码目录下INSTALL.W32step1环境搭建安装perl,VisualStudio2008下载Openssl最新版源代码.我下的版本号为OpenSSL-1.0.0g. step2启动VisualStudio2008CommandPrompt执行binvcvars32设置环境变量 注意:如遇反馈"此处不应该有/M... 查看详情

windows下openssl编译

昨晚,在编译rabbitmq-c时,使用cmake生成vs项目文件时遇到下列错误:CMakeErroratC:/ProgramFiles/CMake/share/cmake-3.6/Modules/FindPackageHandleStandardArgs.cmake:148(message):CouldNOTfindOpenSSL,trytosetthepathtoOpenSSLrootfold 查看详情

编译libcurl支持https协议

编译与安装参考:http://www.cnblogs.com/openiris/p/3812443.html注意事项:先下载安装完nasm和perl再打开控制台(需要将nasm安装路径添加到Path环境变量中)。curl:     https://curl.haxx.se/download/curl-7.37.0.zipopenssl:  ftp://ftp.openssl.org/sn 查看详情

windows平台源码编译最新版openssl

1.从openssl官网下载最新版openssl   https://www.openssl.org/source/Thelateststableversionisthe1.1.0seriesofreleases最新版为1.1.0 2016.8.25更新版2.本机安装VSStudio,我的是vs20083.安装ActivePerl(http://www.ac 查看详情

win10上使用vs2017编译libcurl(代码片段)

编译libcurl时,libssh2和openssl应该都不是必须的,这从libcur的vs工程配置能看出来这里我们编译DLLRelease-DLLOpenSSL-DLLLibSSH2,win32libssl2依赖zlib和openssl,下载相关源码并解压下载地址https://github.com/madler/zlibhttps://github.com/... 查看详情

c++进阶详解c++开源网络传输库libcurl的编译过程

目录1、引言2、直接编译libcurl工程,提示找不到ssh.h3、下载并编译libssh2开源代码,部署到libcurl目录中4、获取openssl开源库的头文件和库文件,部署到libcurl目录中5、将编译好的libcurl拿到测试项目中测试6、使用CMake工... 查看详情

windows平台使用vs2017编译libevent源码

一依赖库编译先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到。1)windows平台使用VS2017编译openssl源码参考前面的文章openssl默认编译到C:\ProgramFiles(x86)\OpenSSL目录,... 查看详情

怎样在windows下面编译openssl(代码片段)

编译OPENSSL的步骤:第一步:下载ActivePerl(http://www.activestate.com/,),安装ActivePerl,默认安装路径在C:Perl64。打开命令提示符,定位到C:Perl64eg目录,执行perlexample.pl,若提示HellofromActivePerl!则说明Perl安装成功:这里只能下载64位... 查看详情

librdkafka:windows编译librdkafka(代码片段)

0、下载ActivePerl、openssl源码和librdkafka源码1、安装ActivePerl2、编译openssl打开x86NativeToolsCommandPromptforVS2019切换到openssl的源码目录执行perlConfiguredebug-VC-WIN32no-asm--prefix="D:\code\openssl-OpenSSL_1_1_1\debug 查看详情

在windows下用visualstudio编译openssl1.1.0

到OpenSSL官方网站下载OpenSSL源代码包1、下载openssl-1.1.0.tar.gz2、安装ActivePerl,可以到http://www.activestate.com/activeperl/downloads下载最新版本,需要用到perl解释器。    注:Perl最低版本要求5.10以上,WindowsXP用户最后支持版... 查看详情

如何在windows下编译openssl

解压缩OpenSSL包,在对它进行修改便可以编译了。在解压缩后,所有的源代码放在openssl-1.0.1e目录下,在此目录下,有两个文件INSTALL.W32,INSTALL.W64需要被关注。打开其中的任何一个文件,你会看到如何编译OpenSSL的各个步骤。1)打... 查看详情