编译支持https的curl

    xiaoxiao2021-04-12  34

    最近项目的http服务要转成更加安全的https,发现替换libcurl库还是比较麻烦的,整个过程耗费了几天时间,所以记下笔记,以防将来忘记。

    环境:win7 64位 + vs2012

    下载 openssl

    官网下载后解压,记得添加环境变量

    注意:开始下载的openssl-OpenSSL_1_1_0e, ms目录下文件不全,安装老是失败,没办法换的openssl-1.0.2k版本

    下载 ActivePerl:

    地址:https://www.activestate.com/activeperl/downloads   因为要兼容32位  我下载的x86版本

    安装ActivePerl:

    直接点击下一步完成即可。

    安装dmake:

    如果报错sqlite3结构破坏, 删除

    C:\Users\%USERNAME%\AppData\Local\ActiveState\ActivePerl 目录下的文件

    重新执行,成功

    安装nasm:

    直接点击下一步完成即可。

    编译openssl:  

    (1)打开vs工具下命令行跳转到openssl目录执行:

    perl Configure VC-WIN32 --prefix=H:\test_https

    (2)运行nasm编译器

    编译动态库

    执行: nmake -f ms\ntdll.mak 

    执行:  nmake -f ms\nt.mak install 

    编译静态库:

    nmake -f ms\nt.mak

    nmake -f ms\nt.mak install 

    这两步编译时间稍长

    (3)打开安装目录:

    查看编译成功的include 和 lib库(这两个静态库在编译静态版本的时候还要使用)。

    (4)打开H:\lh_server\curl-7.49.1\curl-7.49.1\projects\Windows目录,我是vs2012,打开VC11里面的工程

    (5)项目导入之前编译的库和include文件目录.

    (6)选择自己需要的编译方式编译,得到libcurl.lib和相应的dll文件

    (7)拷贝include和生成的库文件到自己的工程.

    这里需注意一点:静态库版本,在编译后使用的时候还要将前面编译成功的(libeay32.lib, ssleay32.lib)一并带入新工程引用,在预处理还需加入CURL_STATICLIB,不然会得到一堆无法解析的外部符号的错误,动态库版本不需要,如下图所示

    转载请注明原文地址: https://ju.6miu.com/read-667454.html

    最新回复(0)