llibcurl 编译总结

这两天在调试代码的时候,出现一些错误,发现是同时调用了两份libcurl静态库引起的。需要重新编译一份libcurl的动态库。
Windows版本的libcurl编译过程相对来说,是比较痛苦的。主要在于编译环境的搭建,如果环境搭建好了,速度还是很快的。本文档将会在CSDN中开放,同时也会保存在公司内部使用,不涉及到公司信息保密问题。

1.libcurl的作用

ibcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。, libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。

2.OpenSSL

OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

3.为什么libcurl需要OpenSSL

libcurl为了实现HTTPS需要OpenSSL提供支持,在进行编译libcurl之前,最好是编译好OpenSSL。

4.环境搭建

(1)安装Perl程序
openssl编译 Configure的时候,使用到perl程序,在window 下比较流行当仁不让就是 activeperl
 http://dl.softmgr.qq.com/original/Development/ActivePerl-5.16.3.1604-MSWin32-x64-298023.msi
安装比较简单,默认安装就可以了,不要做其他操作。
(2)安装NASM 汇编器
编译可以使用vc++编译器来编译OpenSSL,使用汇编器编译有更快的速度,本人使用汇编器是nasm。
http://www.nasm.us/pub/nasm/releasebuilds/2.11.05/win32/nasm-2.11.05-installer.exe

5.使用汇编器NASM编译OpenSSL库

本人安装是VS2005开发环境, OpenSSL需要使用Visual Studio 命令行方式编译。
1) 点击 开始->所有程序->Microsoft Visual Studio 2005->Visual Studio Tools->Visual Studio 命令提示(2005)
2)再打开编译窗口,将上面安装NASM的路径添加到PATH环境变量里 PATH=%PATH%;“c:\Program Files (x86)\nasm”
3)进入OpenSSL的工作目录 D:\Code\sdkdev\LCLibcurl\Trunk\openssl-1.0.2h
这里写图片描述
4)执行命令 perl Configure VC-WIN32, 使用默认安装路径,静态库编译方式,头文件保存在inc32\openssl,库保存在out32文件夹。动态库编译方式,头文件保存在inc32\openssl,库保存在out32dll文件夹中。
5)生存Makefile 文件 ms\do_nasm
如果不是使用nasm汇编器,这一步使用其他的命令代代替(如ms\do_ms)
输出如下:
这里写图片描述
6.开始编译如果要编译成动态库使用 nmake -f ms\ntdll.mak
如果要编译成静态库使用 nmake -f ms\nt.mak
本次编译成***静态链接库***,所以使用nmake -f ms\nt.mak
等待差不多五分钟,只要不出现“stop”,安全地执行到结束,就算成功。
一旦中间出了差错,最好是把文件夹也删了,重新解压、配置编译,如果你留有编译失败的半成品,它可能会告诉你“无法解析XXX”。
将 D:\Code\sdkdev\LCLibcurl\Trunk\openssl-1.0.2h\inc32\openssl
所有的.h 和 D:\Code\sdkdev\LCLibcurl\Trunk\openssl-1.0.2h\out32的 libeay32.lib、libeay32.dll、ssleay32.lib、ssleay32.dll 一起复制到 D:\Code\sdkdev\LCLibcurl\Trunk\curl-7.37.0\curl-7.37.0\lib\openssl 中。
在这里插入图片描述

在这里插入图片描述

6.libcurl编译:
ibcurl编译:
debug版本:编译静态库
编译平台选择 DLL Debug - DLL OpenSSL
D:\Code\sdkdev\LCLibcurl\Trunk\curl-7.37.0\curl-7.37.0\projects\Windows\VC8
curl-7.37.0 ->projects -> Windows -> VC8 -> curl。sln,使用vs2005进行编译。
将 libcurl 设为启动项目,选择 libcurl -> Resource Files -> libcurl.rc,右键“移出”,它记录着版本信息,只会增大文件,可以移出掉。
选择 属性 -> C/C++ -> 预处理器 -> 预处理器定义,将"***BUILDING_LIBCURL"改成"CURL_STATICLIB"。***这样那些接口函数就不会被声明为导出函数了。
选择 属性 -> 链接器 -> 常规 -> 附加库目录 添加 …\lib\openssl,指向curl-7.37.0 -> lib -> openssl
选择 属性 -> 链接器 -> 输入 -> 附加依赖项 添加 libeay32.lib;ssleay32.lib;ws2_32.lib;wldap32.lib; 前两个是为了OpenSSL,后两个是CURL必须依赖的。
在编译成功后 curl-7.37.0 -> build -> Win32 -> VC8 -> DLL Debug - DLL OpenSSL 文件夹中会生成有 libcurld.dll 和 libcurld.lib(注意名字不是libcurl)。

release 版本编译动态库
编译平台选择 DLL Debug - DLL OpenSSL
D:\Code\sdkdev\LCLibcurl\Trunk\curl-7.37.0\curl-7.37.0\projects\Windows\VC8
curl-7.37.0 ->projects -> Windows -> VC8 -> curl。sln,使用vs2005进行编译。
将 libcurl 设为启动项目,选择 libcurl -> Resource Files -> libcurl.rc,右键“移出”,它记录着版本信息,只会增大文件,可以移出掉。
选择 属性 -> C/C++ -> 预处理器 -> 预处理器定义,BUILDING_LIBCURL不需要更改。
选择 属性 -> 链接器 -> 常规 -> 附加库目录 添加 …\lib\openssl,指向curl-7.37.0 -> lib -> openssl
选择 属性 -> 链接器 -> 输入 -> 附加依赖项 添加 libeay32.lib;ssleay32.lib;ws2_32.lib;wldap32.lib; 前两个是为了OpenSSL,后两个是CURL必须依赖的。
在编译成功后 curl-7.37.0 -> build -> Win32 -> VC8 -> DLL Release- DLL OpenSSL 文件夹中会生成有 libcurl.dll 和 libcurl.lib。编译成功之后,会保存在D:\Code\sdkdev\LCLibcurl\Trunk\curl-7.37.0\curl-7.37.0\build\Win32\VC8\DLL Release
这里写图片描述
在这里插入图片描述

相关网址:
libcurl库的编译
Curl的编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值