windows平台libcurl+openssl编译备忘(转)

一、环境准备
Visual Studio 2015(其他版本也可以)
Git
Perl
CMake
二、开始编译
2.1 获取curl源码:
git clone --branch curl-7_60_0 https://github.com/curl/curl.git
1
2.2 获取openssl源码:
Git获取指定版本的源码,因为7_60_0版本libcurl自带的build-openssl.bat最高支持openssl 1.0.2版本,所以此处获取的OpenSSL_1_0_2o分支的代码:

git clone --branch OpenSSL_1_0_2o https://github.com/openssl/openssl.git
1
2.3 编译openssl
cd curl/porjects进入curl/porjects目录,执行如下命令开始编译openssl:

./build-openssl.bat vc14 x86 debug D:\\SourceCode\\openssl -perlpath C:\\Strawberry

# 命令中的C:\\Strawberry是Perl的安装目录

编译完的输出文件位于的openssl/build目录。

[可选] 修改openssl的运行时库
通过上面命令编译的openssl默认使用的是/MT(debug版为/MTd)的运行时库。如果需要更改为/MD(或/MDd),可以通过如下方式更改:

修改opessl源码目录中的ms\nt.mak文件(注:该文件由Perl脚本自动生成),将CFLAG选项中的 /MT修改为/MD。
因为nt.mak文件是由Configure命令生成的,所以我们需要屏蔽Configure步骤,否则会将我们上面的修改覆盖掉。具体方法为:注释掉build-openssl.bat文件中对应得编译版本下的perl Configure debug-VC-WIN32 no-asm --prefix=%CD%。
也可以到https://slproweb.com/products/Win32OpenSSL.html下载编译好的二进制文件。

2.4 编译curl
配置文件修改
编译curl之前,需要对curl\winbuild\MakefileBuild.vc文件进行部分修改:
将DEVEL_LIB = $(WITH_DEVEL)/lib行修改为:

!IF "$(DEBUG)"=="yes"
DEVEL_LIB    = $(WITH_DEVEL)/lib/Debug
!ELSE
DEVEL_LIB    = $(WITH_DEVEL)/lib/Release
!ENDIF

这样修改主要是为了在编译debug和release版本时,指定依赖库的debug/release版。

这一步是可选的。如果不修改,在编译debug和release版本时,分别拷贝不同版本的依赖库到lib目录即可。

拷贝依赖文件到deps
在curl目录新建deps目录(因为编译时指定了WITH_DEVEL=../deps),并且在deps目录中新建include、lib/Debug、lib/Release目录,目录建完之后的结构如下:


拷贝openssl文件到deps中:

在deps\include中新建openssl目录,然后将openssl\inc32中的openssl目录(含该目录)拷贝到include\openssl中,即inlcude\openssl\openssl。
将openssl\build\Win32\VC14\LIB Debug中的*.lib文件拷贝到lib/Debug目录。
其他依赖库也可以使用此方法。

打开Visual Studio的命令行工具,进入到\curl\winbuild目录,执行如下命令开始编译curl:

nmake /f Makefile.vc mode=static VC=15 MACHINE=x86 WITH_SSL=static DEBUG=yes WITH_DEVEL=../deps
1
编译完的输出文件位于curl\builds目录。

[可选] 修改libcurl的运行时库
MakefileBuild.vc文件中针对static默认使用的是MT:

!IF "$(RTLIBCFG)"=="static"
RTLIB = /MT
RTLIB_DEBUG = /MTd
!ELSE
RTLIB = /MD
RTLIB_DEBUG  = /MDd
!ENDIF

所以只需要在编译参数中加入RTLIBCFG=static即可。

参考curl\winbuild\BUILD.WINDOWS.txt
————————————————
版权声明:本文为CSDN博主「china_jeffery」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/china_jeffery/article/details/80589278

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VS2013中编译libcurl时,需要使用OpenSSL和zlib。libcurl是一个功能强大的开源网络库,能够实现跨平台的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、付费专栏及课程。

余额充值