64bit libcurl.lib生成步骤及注意事项详解
2015-09-17 09:58
405 查看
1、[前提]编译32bit libcurl.lib
参考文档:Using-libcurl-with-SSH-support-in-Visual-Studio-2010.pdf。下载地址:http://curl.haxx.se/libcurl/c/
2、在32bit基础上,编译64bit libcurl.lib
因为libcurl.lib依赖libssh2.lib;
而libssh2.lib依赖openssl库(libeay32.lib;ssleay32.lib)。
libssh2.lib需要自己动手编译成64bit的。
openssl的库需要下载64bit的,下载地址:http://www.indyproject.org/Sockets/fpc/OpenSSLforWin64.en.aspx
3、梳理下生成64bit libcurl.lib的步骤:
前提:参考Using-libcurl-with-SSH-support-in-Visual-Studio-2010.pdf,已经生成了32bit的libcurl.lib.
第一步:下载win64bit的Openssl库,在目录AMD64-Win64OpenSSL-0_9_8g下的libeay32.lib;ssleay32.lib两个库文件会在“第二步”使用。
第二步:编译64bit的libssh2.lib,注意下面的附加依赖项。同时必须注意平台统一改为X64。
至此,在C:\libssh2-1.5.0\win32\Debug_lib目录下生成了libssh2.lib。该库文件会在“第三步”使用。
第三步:编译64bit的libcurl.lib,注意下面的附加依赖项。
4、在自己开发的程序需要64bit libcurl.lib的时候,将上面步骤3编译好的libcurl.lib包含进去。
可能会有““无法启动此程序,因为计算机中丢失LIBEAY32.DLL”的Bug。
解决方案:http://blog.csdn.net/kofandlizi/article/details/6545847
或者全局搜索“LIBEAY32.DLL”拷贝到C:/WINDOWS/SYSTEM32目录下即可。
5、可能的编译错误:
1>libcurl.lib(ssh.obj) : error LNK2019: 无法解析的外部符号 libssh2_session_free,该符号在函数 ssh_statemach_act 中被引用
1>libcurl.lib(ssh.obj) : error LNK2019: 无法解析的外部符号 libssh2_agent_free,该符号在函数 ssh_statemach_act 中被引用
1>libcurl.lib(ssh.obj) : error LNK2019: 无法解析的外部符号 libssh2_agent_disconnect,该符号在函数 ssh_statemach_act 中被引用
以上便是:libssh2.lib编译出问题导致的,继续根libssh2.lib的工程即可排查。
6、注意事项小结:
1)64bit程序编译所依赖的库也必须是64bit的,如上面的libssh2.lib和libeay32.lib;ssleay32.lib,否则就会出这样或者那样的编译错误。
2)编译时候统一将“属性”–>“配置属性”–>”C/C++”–>”代码生成“–>”运行库“,设置为”MT“或者”MTD“,要几个工程一致。
7、编译好的libcurl.lib(32bit&64bit)下载地址
http://download.csdn.net/detail/wojiushiwo987/9113477
2015-9-15 pm11:30 整理于家中床前
作者:铭毅天下
转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/48517865
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!
参考文档:Using-libcurl-with-SSH-support-in-Visual-Studio-2010.pdf。下载地址:http://curl.haxx.se/libcurl/c/
2、在32bit基础上,编译64bit libcurl.lib
因为libcurl.lib依赖libssh2.lib;
而libssh2.lib依赖openssl库(libeay32.lib;ssleay32.lib)。
libssh2.lib需要自己动手编译成64bit的。
openssl的库需要下载64bit的,下载地址:http://www.indyproject.org/Sockets/fpc/OpenSSLforWin64.en.aspx
3、梳理下生成64bit libcurl.lib的步骤:
前提:参考Using-libcurl-with-SSH-support-in-Visual-Studio-2010.pdf,已经生成了32bit的libcurl.lib.
第一步:下载win64bit的Openssl库,在目录AMD64-Win64OpenSSL-0_9_8g下的libeay32.lib;ssleay32.lib两个库文件会在“第二步”使用。
第二步:编译64bit的libssh2.lib,注意下面的附加依赖项。同时必须注意平台统一改为X64。
至此,在C:\libssh2-1.5.0\win32\Debug_lib目录下生成了libssh2.lib。该库文件会在“第三步”使用。
第三步:编译64bit的libcurl.lib,注意下面的附加依赖项。
4、在自己开发的程序需要64bit libcurl.lib的时候,将上面步骤3编译好的libcurl.lib包含进去。
可能会有““无法启动此程序,因为计算机中丢失LIBEAY32.DLL”的Bug。
解决方案:http://blog.csdn.net/kofandlizi/article/details/6545847
或者全局搜索“LIBEAY32.DLL”拷贝到C:/WINDOWS/SYSTEM32目录下即可。
5、可能的编译错误:
1>libcurl.lib(ssh.obj) : error LNK2019: 无法解析的外部符号 libssh2_session_free,该符号在函数 ssh_statemach_act 中被引用
1>libcurl.lib(ssh.obj) : error LNK2019: 无法解析的外部符号 libssh2_agent_free,该符号在函数 ssh_statemach_act 中被引用
1>libcurl.lib(ssh.obj) : error LNK2019: 无法解析的外部符号 libssh2_agent_disconnect,该符号在函数 ssh_statemach_act 中被引用
以上便是:libssh2.lib编译出问题导致的,继续根libssh2.lib的工程即可排查。
6、注意事项小结:
1)64bit程序编译所依赖的库也必须是64bit的,如上面的libssh2.lib和libeay32.lib;ssleay32.lib,否则就会出这样或者那样的编译错误。
2)编译时候统一将“属性”–>“配置属性”–>”C/C++”–>”代码生成“–>”运行库“,设置为”MT“或者”MTD“,要几个工程一致。
7、编译好的libcurl.lib(32bit&64bit)下载地址
http://download.csdn.net/detail/wojiushiwo987/9113477
2015-9-15 pm11:30 整理于家中床前
作者:铭毅天下
转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/48517865
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!
相关文章推荐
- qml学习------------GridLayout
- mvc wcf 并发提示,存储Application,验证是否有用户在操作
- Php move_uploaded_file无法成功
- JAVA中的vector,arraylist,linkedlist有什么共同点及区别?
- STL - 判断式(Predicate) - 单参判断式(Unary Predicate)
- Sublime Text 无法使用Package Control的解决方法 以及 常用的插件安装过程
- 用非GUI模式执行测试,jp@gc - PerfMon Metrics Collector会出现无法获取正确数据的解决办法
- How to remove the action suffix extension in Struts 2
- 小米模式失败?揭示华米改名真相
- LR笔试题整理
- system() 函数执行遇到 Cannot allocate memory
- linux命令详解——vim
- linux命令详解——vim
- C# WinForm 解决子窗体放大后,子窗体图标放大的问题
- python静态方法和类方法
- JS正则表达式基本用法(经典全)
- 基础技巧
- 查看项目崩溃日志
- 如何吸引学生们为你的开源项目贡献代码
- 如何吸引学生们为你的开源项目贡献代码