CURL 链接静态库

来源:互联网 发布:最新流行的网络歌曲 编辑:程序博客网 时间:2024/06/04 23:30

一、 编译属于你的  CURL

下载最新版本 CURL : curl-7.54.0;

打开你的 vs 等ide 的命令提示符窗口

编译成功后: 在../Builds目录下查找 你要所需要的lib 库


二、静态链接库使用:

当程序中使用 lib 库进行编译时候提示:

在编译的时候出现问题如下:

无法解析的外部符号 __imp__curl_slist_free_all
无法解析的外部符号 __imp__curl_easy_cleanup
无法解析的外部符号 __imp__curl_easy_getinfo
无法解析的外部符号 __imp__curl_easy_setopt
无法解析的外部符号 __imp__curl_slist_append
无法解析的外部符号 __imp__curl_easy_init
无法解析的外部符号 __imp__curl_global_init
无法解析的外部符号 __imp__curl_easy_perform

解决方法 2种:

具体步骤就是:

1、给工程添加依赖的库:项目->属性->链接器->输入->附加依赖项,把libcurl.lib ws2_32.lib winmm.lib wldap32.lib添加进去

注意,debug配置用libcurld.lib

2、加入预编译选项:项目->属性->c/c++ ->预处理器->预处理器,把  ;BUILDING_LIBCURL;HTTP_ONLY复制进去(注意不要丢了";")

注意: 改lib 库要放在 程序的目录下边


第二种方式:

#define CURL_STATICLIB  //必须在包含curl.h前定义
#include "curl\curl.h"

#pragma comment ( lib, "libcurl_a.lib" )
#pragma comment ( lib, "ws2_32.lib" )
#pragma comment ( lib, "winmm.lib" )
#pragma comment ( lib, "wldap32.lib" )


最近在使用MFC 的时候 ,发现 c run time 只支持 MD 导致在win2000下缺少各种库。 所以重新编译了下静态链接:

加上 RTLIBCFG=static 就是/MT 了 

也可以解决 : 问题

1>msvcrt.lib(MSVCR90.dll) : error LNK2005: __read already defined in libcmt.lib(read.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: __write already defined in libcmt.lib(write.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: __close already defined in libcmt.lib(close.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: __open already defined in libcmt.lib(open.obj)
1>libcmt.lib(crt0init.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>E:\MFC\SignMonitor\SignMonitor\Release\SignMonitor.exe : fatal error LNK1169: one or more multiply defined symbols found

以上就能解决 静态库 链接问题: 如有问题或者 更好的方式:请联系  Q 1005252070 

推广下视频店铺:1元视频:https://shop149700502.taobao.com/?spm=a313o.7775905.1998679131.d0011.0D5aDV


0 0
原创粉丝点击