libcur+openssl的编译和使用

前边工作中用到了libcurl,为了使其支持https,最近又重新编译了下,中间也走了很多弯路,现在记录一下。


1. 主角介绍


licurl-7.37.1

openssl-1.0.0c

visual studio 2013 c++ 


2. 编译


在项目中,可以根据项目需要,进行动态库的编译或者 静态库的编译。一开始,我的项目里用的是动态库,后续又用到了静态库,下边分别对两种编译方式进行陈述。


2.1 动态库编译


2.1.1 编译open ssl


编译open ssl需要用到ActivePerl,官方下载 http://www.activestate.com/activeperl/downloads,可以根据需要,选择适当版本下载。

安装好ActivePerl以后,从命令行进入解压以后的openssl-1.0.0c根目录,然后在命令行中依次运行如下命令:

perl Configure VC-WIN32
ms\do_ms.bat
C:\dev\vs2013\Common7\Tools\vsvars32.bat
nmake -f ms/ntdll.mak


第三行命令,根据vs的安装目录,进行修改。执行以后,不出意外,编译会顺利进行,编译的结果在根目录下的out32dll文件夹中,libcurl的https支持需要用到libeay32.dll和ssleay32.dll两个动态链接库,编译完成后拷贝这两个动态链接库文件到相关目录即可。

默认是采用MD方式编译,如果需要采用MT方式编译,则需要修改ms目录下的ntdll.mak文件,在第20行中,将MD改为MT

CFLAG= /MT ...

2.1.2 编译libcurl

切换到libcurl的根目录下的lib目录中,在lib目录中新建一个名为release_ssl_dll.bat的批处理文件,批处理文件的内容如下:

call "C:/dev/vs2013/Common7/Tools/vsvars32.bat"
set CFG=release-dll-ssl-dll
set OPENSSL_PATH=../../openssl-1.0.0c
nmake -f Makefile.vc10

第一行命令,根据vs的安装目录,进行修改。双击执行批处理程序后,不出意外,编译会顺利进行,编译的结果在lib目录下的release-dll-ssl-dll,拷贝libcurl.dll和libcurl_imp.lib到相关目录下即可。


默认是采用MD方式编译,如果需要采用MT方式编译,则需要在release_ssl_dll.bat批处理最后一行命令之前,添加如下命令:

set RTLIBCFG=static


2.2 静态库编译

2.2.1 open ssl静态库编译

和动态库编译类似,需要先安装ActivePerl,安装完成以后,在命令行进入open ssl解压以后的根目录,然后依次执行如下命令:

perl Configure VC-WIN32
ms\do_ms.bat
打开nt.mak文件,修改文件第20行的MD为MT:
CFLAG= /MT...
然后执行命令:
C:\dev\vs2013\Common7\Tools\vsvars32.bat
nmake -f ms/nt.mak
不出意外,编译会顺利进行,在out32目录下,会生成libeay32.lib和ssleay32.lib两个静态库,用的时候拷贝文件到合适目录即可。

2.2.2 libcurl静态库编译

进入libcurl根目录下的lib目录,新建一名为release_ssl_lib.bat的批处理文件,其内容如下:

call "C:/dev/vs2013/Common7/Tools/vsvars32.bat"
set CFG=release-ssl
set RTLIBCFG=static
set OPENSSL_PATH=../../openssl-1.0.0c
nmake -f Makefile.vc10
执行批处理文件以后,在lib目录下的release-ssl目录中,会生成libcurl.lib静态库,用的时候拷贝该库文件到合适目录即可。

2.2.3 工程中引入静态库

在vs中,设置链接器的附加库目录,并在输入配置项目中填入以下库文件:

ws2_32.lib
wldap32.lib
crypt32.lib
libeay32.lib
ssleay32.lib
libcurl.lib

另外,还需要定义预处理器:

CURL_STATICLIB


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VS2013中编译libcurl时,需要使用OpenSSL和zliblibcurl是一个功能强大的开源网络库,能够实现跨平台的HTTP、FTP、SMTP等协议的数据传输。 OpenSSL是一个开源的加密库,提供了各种加密算法和安全协议的实现,可以用于SSL/TLS的加密和解密通信。在编译libcurl时,需要将OpenSSL的头文件和库文件加入到VS2013的编译环境中。这样在编译libcurl时,可以使用OpenSSL提供的加密算法和安全协议进行网络通信的加密。 zlib是一个开源的数据压缩库,可以实现对数据的高效压缩和解压。在编译libcurl时,需要将zlib的头文件和库文件加入到VS2013的编译环境中。这样在编译libcurl时,可以使用zlib提供的数据压缩和解压功能,提高数据传输的效率。 在编译过程中,应首先确保已正确安装了OpenSSL和zlib,并设置了相应的环境变量。然后,在VS2013中创建一个新的项目,将libcurl的源代码添加到项目中。接着,在项目属性中设置包含目录和库目录,指定OpenSSL和zlib的头文件和库文件的位置。 最后,进行编译和链接操作,生成libcurl的库文件和可执行文件。编译成功后,就可以在VS2013中使用libcurl的各种功能了。 总结来说,编译libcurl时需要使用OpenSSL和zlib,并确保已正确配置VS2013的编译环境,包含相关的头文件和库文件。完成配置后,就可以在VS2013中编译使用libcurl库了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值