编译支持https的curl

来源:互联网 发布:gtkwave mac 编辑:程序博客网 时间:2024/05/21 20:37

最近项目的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,不然会得到一堆无法解析的外部符号的错误,动态库版本不需要,如下图所示


0 0
原创粉丝点击