千家信息网

libcurl第二课 编译静态库

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,1 编译libcurl静态库确保C/C++页面下代码生成/运行库确保跟解决方案保持一致,确保常规下输出路径和目标文件名称(d)2 C/C++属性页面中的预处理器属性页设置定义_DEBUGBUILDIN
千家信息网最后更新 2026年11月02日libcurl第二课 编译静态库

1 编译libcurl静态库
确保C/C++页面下代码生成/运行库确保跟解决方案保持一致,确保常规下输出路径和目标文件名称(d)


2 C/C++属性页面中的预处理器属性页设置定义
_DEBUG
BUILDING_LIBCURL
DEBUGBUILD
CURL_STATICLIB
USE_WINDOWS_SSPI
USE_SCHANNEL
USE_WINDOWS_SSPI和USE_SCHANNEL两个预编译处理定义是用来定义HTTPS,为了使用https协议需要指定,切记!


3 调用工程C/C++属性页面中的预处理器属性页设置定义

BUILDING_LIBCURL

CURL_STATICLIB

因为宏定义主要作用于curl/curl.h头文件,用于头文件的宏定义条件编译,必须定义这两个宏定义,否则编译出错,看出错分析


2 链接错误分析
1)error LNK2019: 无法解析的外部符号 __imp__curl_easy_init,该符号在函数 _main 中被引用
分析:不定义CURL_STATICLIB 编译结果,因为CURL_EXTERN CURL *curl_easy_init(void);函数之前有CURL_EXTERN定义,而该定义在
#ifdef CURL_STATICLIB
# define CURL_EXTERN
#elif defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__)
# if defined(BUILDING_LIBCURL)
# define CURL_EXTERN __declspec(dllexport)
# else
# define CURL_EXTERN __declspec(dllimport)
# endif
#elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS)
# define CURL_EXTERN CURL_EXTERN_SYMBOL
#else
# define CURL_EXTERN
#endif

这里被定义,如果没有定义CURL_STATICLIB,将会导致CURL_EXTERN被替换成__declspec(dllexport)或者__declspec(dllimport),这两个声明只应用于动态链接,不能应用于静态链接

2)error LNK2019: 无法解析的外部符号 __imp__ldap_init,该符号在函数 __ldap_free_urldesc 中被引用
在引用项目的属性中添加额外的静态库Crypt32.lib,Wldap32.lib,否则出现如下的错误,因为用到https



3)C2371 "curl_share_init": 重定义;不同的基类型 libcurl

查看源码,如果没有定义BUILDING_LIBCURL,将导致curl_share_init在声明和定义中出现返回类型不一致的问题

#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER)
typedef struct Curl_easy CURL;
typedef struct Curl_share CURLSH;
#else
typedef void CURL;
typedef void CURLSH;
#endif

编译 属性 符号 静态 两个 函数 文件 链接 页面 分析 一致 类型 错误 应用 预处理 不同 代码 代码生成 作用 动态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 广州百单互联网科技有限公司 科技赋能下的互联网金融 工业互联网科技新基建 互联网 科技创新 合肥互联网科技公司 浩特互联网科技 掌上梦互联网科技 深圳艾佳互联网科技 互联网养老 桔豆科技 人人互联网科技是培训 科技赋能互联网健康 深圳市运趣互联网科技有限公司 彤创互联网科技有限公司 互联网营销推广黑科技 容联科技互联网电商 万物互联网智能科技 北京军民互联网科技公司 安徽零酒互联网科技有限公司 青岛易易互联网科技 美国互联网保险保险科技 互联网金融科技委员会 语蝶互联网科技有限公司 翼展科技 首家互联网医院 无锡工业互联网科技有限公司 浙南科技城互联网大厦招聘 互联网相关科技技术 卡尔迅互联网科技有限公司 互联网科技包装股份有限公司上市 宁波允成互联网科技有限公司
0