http://blog.csdn.net/zhengfuzhe1124/article/details/9627893
下面主要介绍的是libcurl.lib的编译过程,这里是指支持SSH功能的lib。
对于libcurl的介绍网上已经很多了,这里我就简单的介绍一下。
1、libcurl简介
Libcurl是一个广泛应用的开源的文件传输库,它支持多种协议,包括HTTP POST, HTTP PUT, FTP 上传,以及HTTPS证书授权等,总之,很强大!
下载地址:http://curl.haxx.se/libcurl/
2、下载Libcurl库文件或者下载工程文件
对于新手,比较推荐下载工程文件,主要是学习编译libcurl.lib的过程。官网上可以直接下载到libcurl的库文件,http://curl.haxx.se/dlwiz/?type=devel&os=Win32,这个连接就可以下载到开发包,后面再说下到这个包之后如何使用。
我下载的是libcurl的全包,连接http://curl.haxx.se/download/curl-7.31.0.zip,版本是7.31.0,下载解压之后,可以看到有下图中的文件:
如果你是window开发环境并且使用vs进行编译,那么打开文件夹VS目录下的工程文件,你可以看到下图的工程目录:
下面主要介绍如何使用这个工程生成libcurl.lib静态库文件。
1)首先下载必要的安装包
编译libcurl工程需要两个额外的开源库以支持SSH功能,libSSH2和OpenSSL。
安装OpenSSL的必要软件:
ActivePerl,下载地址:http://www.activestate.com/activeperl/downloads
NASM,下载地址:http://www.nasm.us
OpenSSL的下载地址是http://www.openssl.org/source
安装LibSSH2:
LibSSH2的下载地址是http://www.libssh2.org
LibSSH2和OpenSSL的安装包是tar包,如果电脑上没有安装好压的话,可以下载开源的7-zip(http://www.7-zip.org)解压。
2) 按照提示安装ActivePerl和nasm。
3) 安装OpenSSL
a、解压openssl-1.0.1c.tar,这里将其解压到C盘的根目录下。
b、打开VS的命令行;开始-程序-MicroSolft Visual Studio 2008-Visual Studio tools-vs2008 命令提示;
c、将Nasm添加到环境变量。输入:path = %PATH%;C:\nasm-2.10.07
d、创建输出目录。输入:mkdir c:\openssl_lib
e、切换工作目录。输入:cd /D c:\openssl-1.0.1c
f、配置OpenSSL的安装。输入:perl Configure VC-WIN32 --prefix=c:/openssl_lib
这一过程的输出如下:
g、创建所需文件。输入:ms\do_nasm
h、编译静态库。输入:nmake -f ms\nt.mak
i、等编译结束,检测编译是否合理。输入:nmake -f ms\nt.mak test
j、安装OpenSSL到前几步指定的目录。输入:nmake -f ms\nt.mak install
ok,OpenSSL的安装到此结束,开始安装LIBSSH2。
4)安装LIBSSH2
a、解压libssh2-1.4.3.tar到C盘
b、C:\libssh2-1.4.3\win32\libssh2.dsp,打开工程文件。
如下图:
将工程设为LIB_DEBUG,并设置属性如下:
添加包含目录C:\openssl_lib\include,设置运行时库为Multi-threaded Debug DLL (/MDd)(c/c++节点的代码生成项设置),改变输出文件属性为Debug_lib\libssh2.lib,添加依赖库libeay32.lib;ssleay32.lib,添加库目录C:\openssl_lib\lib。
编译即可成功。
5)编译生成libcurl.lib
之前已经解压过文件并打开工程C:\curl-7.31.0\vs\vc8\liblibcurl.vcproj,设置属性如下:
a、添加包含目录C:\libssh2-1.4.3\include,
b、设置预处理属性:CURL_STATICLIB;USE_LIBSSH2;CURL_DISABLE_LDAP;HAVE_LIBSSH2;HAVE_LIBSSH2_H;LIBSSH2_WIN32 ;LIBSSH2_LIBRARY
c、添加库文件libssh2.lib
d、添加库目录C:\libssh2-1.4.3\win32\Debug_lib
e、设置输出文件为libcurl.lib
进行编译,成功之后,在输出目录中可以看到libcurl.lib文件。
下面要介绍的是libcurl的使用,因为我们已经有静态库文件以及所需的头文件,注意:直接从官网下载的开发包中,库文件和头文件所在目录如下图:
注意,我们这里只讲使用静态库开发。
下面将一个测试例子:
新建一个控制台工程,并设置属性如下:
添加包含文件目录C:\curl-7.31.0\include\curl,如下图
然后,添加静态库,libcurl.lib,可以将静态库拷贝到工程目录下,也可以设置库文件包含目录等。
设置预处理属性:CURL_STATICLIB
设置依赖库:libcurl.lib;ws2_32.lib
然后编写如下代码,下面代码的主要功能是下载一个文件,并显示进度: