使用VC6编译 Curl和LibCurl+ssl+ssh2+zlib 下载本文

内容发布更新时间 : 2024/5/18 12:01:39星期一 下面是文章的全部内容请认真阅读。

解决方法:

打开 C:\\libssh2-1.6.0\\src\\session.c

写入代码,定义了宏,避免对其它版本的编译器造成影响。

// 解决VC 6 error C2065: 'socklen_t' : undeclared identifier #if defined(_MSC_VER) && (_MSC_VER == 1200) typedef int socklen_t; #endif

////////////////

编译成功!

注意Win32 OpenSSL DLL Release 默认只生成dll文件,新建一个TextFile,名字随便,后缀名为def,重新编译就可以生成动态链接库的lib文件。这个文件直接使用静态编译的就可以了。

复制需要的lib到libcurl中,编译libcurl就可以支持libssh2了。 可以选择静态还是动态的lib文件。

在C:\\curl-7.45.0\\lib\\config-win32.h加入链接库

#pragma comment(lib,\Lib中加入lib的路径,生成的就是动态库版本

libssh2动态编译

虽然可以直接动态编译,但是生成的文件中没有lib文件,libcurl+ssh2的动态编译无法成功。

打开C:\\libssh2-1.6.0\\include\\libssh2.h

里面有关于与这方面的定义,添加对于的处理器定义就可以了。

发现上面的LIBSSH2_WIN32和_WINDLL为黑色,就是没有定义。 那么要添加的定义就是这两个:LIBSSH2_WIN32,_WINDLL

编译后就生成功了!

编译LibCurl

方法一:VC6项目编译

现在是2015年11月15日星期日 从官方网站下载了最新的Curl\\

http://curl.haxx.se/download/curl-7.45.0.zip

解压后,打开C:\\curl-7.45.0\\projects\\Windows,可以看到有项目工程。

curl-all.dsw项目中包行了多种编译模式。

其中OpenSSL 需要下载OpenSSL

默认路径安装好Perl,下载好Openssl的源码解压到C盘下,重命玮openssl。

修改部分源码,VC不支持VC99,有些代码需要转换 打开

C:\\curl-7.45.0\\lib\\config-win32.h

// VC6 是C98

#if defined(_MSC_VER) && (_MSC_VER == 1200) #define ALLOW_MSVC6_WITHOUT_PSDK 1 typedef __int64 LONGLONG; #endif

// VC6 缺省是不定义_WIN32_WINNT宏的 #ifndef _WIN32_WINNT

#define _WIN32_WINNT 0x0400 #endif

#include \#include \

C:\\curl-7.45.0\\lib\\curl_ntlm_core.c

tw = ((long long)time(NULL) + 11644473600ULL) * 10000000ULL; 报错:'bad suffix on number' 替换为

//long long在linux下的gcc/g++里面,搞版本的VS也是支持的 //_int64是windows专用的,被vc、gcc等编译器支持 #if defined(_MSC_VER) && (_MSC_VER == 1200) unsigned __int64 aa = 11644473600; unsigned __int64 bb = 10000000; tw = ((__int64)time(NULL)+aa) * bb; #else

tw = ((long long)time(NULL) + 11644473600ULL) * 10000000ULL; //保持原来的代码不变 #endif

Cmd 打开\\Program Files\\Microsoft Visual Studio\\VC98\\Bin\\VCVARS32.BAT。 cd到C:\\curl-7.45.0\\projects

输入编译参数build-openssl.bat vc6 x86 release

这个三个参数分别是VC的版本vc6~vc14,编译平台x86或x64和release或者debug。

提示出错的vc6 is not installed 解决方法:

设置下VC的路径 if /i \ set VC_VER=6.0 set VC_DESC=VC6

set \修改VC的路径为

set \注意是三个”。

回车就开始编译了

编译成功!

生成了5个文件,其中带SSH2的是没有生成成功的。