一、编译libcurl静态库
1、下载curl-7.54.0.zip并解压
https://curl.haxx.se/download.html下载curl-7.54.0.zip
2. 下载libssh2、openssl、zlib
到http://windows.php.net/downloads/php-sdk/deps/vc11/x86/下载openssl-1.0.2k-vc11-x86.zip、libssh2-1.8.0-vc11-x86.zip、zlib-1.2.7.3-vc11-x86.zip三个文件,
zlib-1.2.7.3-vc11-x86.zip在实际的编译过程中没有用到;
libssh2-1.8.0-vc11-x86.zip
openssl-1.0.2k-vc11-x86.zip
分别解压上面的zip文件
2. 解压curl-7.54.0.zip, 进入curl-7.54.0\projects\Windows目录,选择安装的vs对应版本的VC工程打开,我用的是vs2013选择VC12工程
3. 进入VC12目录,双击curl-all.sln文件,vs2013会启动并打开该文件
打开 curl-all.sln 后可以在解决方案看到有两个项目
curl 和 libcurl ,我要生成curl的库文件自己使用,就选择libcurl项目进行生成。
4. 编译libcurl
选择“LIB Release - LIB OpenSSL - LIB LibSSH2”,编译release版本的libcurl.lib
右键单击"libcurl"项目->生成,编译libcurl.lib库
5. 编译过程中错误解决
5.1 e:\01_code\tools\curl-7.54.0\lib\urldata.h(86): fatal error C1083: 无法打开包括文件: “openssl/ssl.h”: No such file or directory
解决办法:添加openssl头文件路径
解压openssl-1.0.2k-vc11-x86.zip,在“工程---属性---配置属性---VC++目录---包含目录”中添加openssl-1.0.2k-vc11-x86.zip解压后的include目录路径E:\01_code\tools\openssl-1.0.2k-vc11-x86\include,重新编译
5.2 e:\01_code\tools\curl-7.54.0\lib\ssh.h(28): fatal error C1083: 无法打开包括文件: “libssh2.h”: No such file or directory
解决办法:添加libssh2.h头文件路径
解压libssh2-1.8.0-vc11-x86.zip,在“工程---属性---配置属性---VC++目录---包含目录”中添加libssh2-1.8.0-vc11-x86.zip解压后的include目录路径E:\01_code\tools\libssh2-1.8.0-vc11-x86\include\libssh2,重新编译
5.3 错误 28 error LNK1181: 无法打开输入文件“libeay32.lib” e:\01_code\tools\curl-7.54.0/projects/Windows/VC12/lib/LINK libcurl
解决办法:libeay32.lib是openssl的库,添加对应的路径到工程。
在“工程---属性---配置属性---VC++目录---库目录”中添加openssl-1.0.2k-vc11-x86.zip解压后的lib目录路径E:\01_code\tools\openssl-1.0.2k-vc11-x86\lib,重新编译
5.4 错误 2 error LNK1181: 无法打开输入文件“libssh2.lib” e:\01_code\tools\curl-7.54.0/projects/Windows/VC12/lib/LINK libcurl
解决办法:添加libssh2.lib路径到工程
在“工程---属性---配置属性---VC++目录---库目录”中添加libssh2-1.8.0-vc11-x86.zip解压后的lib目录路径E:\01_code\tools\libssh2-1.8.0-vc11-x86\lib,重新编译
再次编译,编译成功!
在E:\01_code\tools\curl-7.54.0\build\Win32\VC12\LIB Release - LIB OpenSSL - LIB LibSSH2下生成了libcurl.lib文件
参考资料:
http://www.th7.cn/Program/cp/201702/1117762.shtml
1、下载curl-7.54.0.zip并解压
https://curl.haxx.se/download.html下载curl-7.54.0.zip
2. 下载libssh2、openssl、zlib
到http://windows.php.net/downloads/php-sdk/deps/vc11/x86/下载openssl-1.0.2k-vc11-x86.zip、libssh2-1.8.0-vc11-x86.zip、zlib-1.2.7.3-vc11-x86.zip三个文件,
zlib-1.2.7.3-vc11-x86.zip在实际的编译过程中没有用到;
libssh2-1.8.0-vc11-x86.zip
openssl-1.0.2k-vc11-x86.zip
分别解压上面的zip文件
2. 解压curl-7.54.0.zip, 进入curl-7.54.0\projects\Windows目录,选择安装的vs对应版本的VC工程打开,我用的是vs2013选择VC12工程
3. 进入VC12目录,双击curl-all.sln文件,vs2013会启动并打开该文件
打开 curl-all.sln 后可以在解决方案看到有两个项目
curl 和 libcurl ,我要生成curl的库文件自己使用,就选择libcurl项目进行生成。
4. 编译libcurl
选择“LIB Release - LIB OpenSSL - LIB LibSSH2”,编译release版本的libcurl.lib
右键单击"libcurl"项目->生成,编译libcurl.lib库
5. 编译过程中错误解决
5.1 e:\01_code\tools\curl-7.54.0\lib\urldata.h(86): fatal error C1083: 无法打开包括文件: “openssl/ssl.h”: No such file or directory
解决办法:添加openssl头文件路径
解压openssl-1.0.2k-vc11-x86.zip,在“工程---属性---配置属性---VC++目录---包含目录”中添加openssl-1.0.2k-vc11-x86.zip解压后的include目录路径E:\01_code\tools\openssl-1.0.2k-vc11-x86\include,重新编译
5.2 e:\01_code\tools\curl-7.54.0\lib\ssh.h(28): fatal error C1083: 无法打开包括文件: “libssh2.h”: No such file or directory
解决办法:添加libssh2.h头文件路径
解压libssh2-1.8.0-vc11-x86.zip,在“工程---属性---配置属性---VC++目录---包含目录”中添加libssh2-1.8.0-vc11-x86.zip解压后的include目录路径E:\01_code\tools\libssh2-1.8.0-vc11-x86\include\libssh2,重新编译
5.3 错误 28 error LNK1181: 无法打开输入文件“libeay32.lib” e:\01_code\tools\curl-7.54.0/projects/Windows/VC12/lib/LINK libcurl
解决办法:libeay32.lib是openssl的库,添加对应的路径到工程。
在“工程---属性---配置属性---VC++目录---库目录”中添加openssl-1.0.2k-vc11-x86.zip解压后的lib目录路径E:\01_code\tools\openssl-1.0.2k-vc11-x86\lib,重新编译
5.4 错误 2 error LNK1181: 无法打开输入文件“libssh2.lib” e:\01_code\tools\curl-7.54.0/projects/Windows/VC12/lib/LINK libcurl
解决办法:添加libssh2.lib路径到工程
在“工程---属性---配置属性---VC++目录---库目录”中添加libssh2-1.8.0-vc11-x86.zip解压后的lib目录路径E:\01_code\tools\libssh2-1.8.0-vc11-x86\lib,重新编译
再次编译,编译成功!
在E:\01_code\tools\curl-7.54.0\build\Win32\VC12\LIB Release - LIB OpenSSL - LIB LibSSH2下生成了libcurl.lib文件
参考资料:
http://www.th7.cn/Program/cp/201702/1117762.shtml