Windows 7下VS2010编译libssh2

目录

Windows 7编译libssh2需要openssl和zlib库。

1. Openssl

网上找了编译好的二进制安装包。
<//slproweb.com/products/Win32OpenSSL.html>
注:安装时注意要将dll安装在windows目录下,如果放在bin目录下,则需在环境变量中PATH加入bin。否则运行使用libssh2的程序时会直接异常退出。

2. Zlib

官方网站下载最新的源代码包,我下载了1.2.8版本,解压缩到某目录。
参照《libssh2的windows下编译》的方法编译:
打开“Visual Studio 命令提示(2010)”,为了使用VC2010的缺省系统配置参数;
切换目录到zlib-1.2.8\contrib\masmx86,并执行脚本bld_ml32.bat,此时会产生inffas32.obj和match686.obj,把这两个文件拷贝到源代码目录zlib-1.2.8下;
切换目录到zlib-1.2.8,执行:nmake -f win32/Makefile.msc LOC=”-DASMV -DASMINF” OBJA=”inffas32.obj match686.obj”
经过以上三个步骤即可完成zlib1.2.8的编译。生成的库文件、dll文件就在源代码根目录下。

3. libssh2编译

官方网站下载最新的源代码包,我下载了1.4.3版本,解压缩到某目录。
修改libssh2下的win32目录下config.mk,修改openssl和zlib的目录

# Tweak these for your system
OPENSSLINC=D:\Lib\cpp\OpenSSL-Win32\include
OPENSSLLIB=D:\Lib\cpp\OpenSSL-Win32\lib
ZLIBINC=-DLIBSSH2_HAVE_ZLIB=1 /ID:\Lib\cpp\zlib-1.2.8
ZLIBLIB=D:\Lib\cpp\zlib-1.2.8

打开“Visual Studio 命令提示(2010)”,在源代码根目录下nmake /f NMakefile。
生成的库文件和dll文件就在源代码根目录下。
注:如编译出现错误:error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏。安装Visual Studio 2010 sp1即可(微软更改配置文件格式,需要安装更新,可能需要安装一个小时)。

4. 使用libssh2

将win32下的libssh2_config.h文件拷贝到include目录下,c++项目中包含include目录,库文件目录添加源代码根目录,库文件添加libssh2.lib,即可使用libssh2库。

5. Qt使用libssh2

在pro文件中添加

LIBS += -LD:\Lib\cpp\libssh2-1.4.3 \
-llibssh2
INCLUDEPATH += D:\Lib\cpp\libssh2-1.4.3\include

目录是libssh2源代码的根目录。