64bit libcurl.lib生成步骤及注意事项详解

简介: 1、[前提]编译32bit libcurl.lib参考文档:Using-libcurl-with-SSH-support-in-Visual-Studio-2010.pdf。下载地址:http://curl.haxx.se/libcurl/c/

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。

image.png

至此,在C:\libssh2-1.5.0\win32\Debug_lib目录下生成了libssh2.lib。该库文件会在“第三步”使用。

第三步:编译64bit的libcurl.lib,注意下面的附加依赖项。

image.png

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


相关文章
|
8月前
|
C语言
转载 - gcc/ld 动态连接库和静态连接库使用方法
本文介绍了如何在GCC中实现部分程序静态链接、部分动态链接。使用`-Wl`标志传递链接器参数,`-Bstatic`强制链接静态库,`-Bdynamic`强制链接动态库。
|
监控 Linux
CentOS 7安装zabbix-agent 5.0报错:依赖检测失败:libpcre.so.0(64bit)获取GPG密钥失败
CentOS 7安装zabbix-agent 5.0报错:依赖检测失败:libpcre.so.0(64bit)获取GPG密钥失败
376 0
编译OpenJDK12:LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
编译OpenJDK12:LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
274 0
|
计算机视觉
谨慎试之:libopencv_core.so.3.4, needed by //usr/local/lib/libopencv_imgcodecs.so
谨慎试之:libopencv_core.so.3.4, needed by //usr/local/lib/libopencv_imgcodecs.so
373 0
|
计算机视觉
OpenCV编译时提示错误“ Built target libprotobuf”
OpenCV编译时提示错误“ Built target libprotobuf”
670 0
|
编解码
gstreamer之RTSP Server编译及注意事项
gstreamer之RTSP Server编译及注意事项
563 0
|
编译器 C++ Windows
VS2010编译生成lib库Release版本比Debug版本大的原因
最近在visual studio2010和2019生成Windows的lib库的时候发现Release版本的lib比Debug版本要大
221 0
VS2010编译生成lib库Release版本比Debug版本大的原因
|
测试技术 C++ Windows
Windows下VS2015编译并使用libcurl.lib静态库(curl:http客户端库c++版本)
Windows下VS2015编译并使用libcurl.lib静态库(curl:http客户端库c++版本)
1296 0
|
开发工具 开发者 C++
64bit libcurl.lib生成步骤及注意事项详解
64bit libcurl.lib生成步骤及注意事项详解
528 0
|
安全 算法 数据安全/隐私保护
一起谈.NET技术,在VS2010项目中引用Lib静态库(以Openssl为例)
  Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。   首先下载Openssl包:(http://www.
1211 0

热门文章

最新文章

下一篇
开通oss服务