curl库+openssl库windows编译

一、工具准备

Visual Studio 2008 :确保安装了 C++ 开发工具。
Git :用于克隆 cURL 的源码。
Perl :可以从 ActiveState Perl 下载并安装。
NASM (可选):如果需要汇编优化,可以从NASM 官方网站 下载并安装。

注意:以下命令行用的都是VS2008这个命令提示工具!

二、openssl

bash 复制代码
-- 编译openssl(openssl-3.1.8)
perl Configure VC-WIN32 no-shared --prefix=D:\openssl_output -MT

nmake

nmake install

VC-WIN32 :指定目标平台为 32 位 Windows。
no-shared :生成静态库。
--prefix=D:\openssl_output :指定安装目录。
-MT:强制使用静态 CRT(我项目编译时使用的是 MT,所以这里也用MT:)。

这里我用的工具是 VS 2008 ,太高的openssl版本,可能编译会有各种错误,没有多看,这个版本刚刚好,有兴趣的可以自己研究一下!

三、curl

1、下载

bash 复制代码
//下载地址,下载源代码
https://github.com/curl/curl/releases

2、进入目录,执行配置文件生成脚本

bash 复制代码
cd D:\curl\curl-curl-8_11_1\curl-curl-8_11_1
buildconf.bat

3、进入winbuild目录进行编译

bash 复制代码
nmake /f Makefile.vc mode=static VC=9 WITH_SSL=static WITH_DEVEL=..\deps MACHINE=x86 RTLIBCFG=static ENABLE_IDN=no

注意,这里用的是VS2008的工具,所以VC=9,编译静态库,用的是static。WITH_DEVEL 是openssl 放的位置

4、生成文件

看 libcurl-vc9-x86-release-static-ssl-static-ipv6-sspi 就行

四、可能会遇到的问题以及解决方案

1、curl使用报错error LNK2001: 无法解析的外部符号 __imp__CertCloseStore@8

解决方案:点击这里

2、curl使用报错error LNK2001: 无法解析的外部符号 __imp__curl_easy_setopt

解决方案:点击这里

3、curl库使用报错error LNK2001: 无法解析的外部符号 __imp__IdnToAscii@20

解决方案:点击这里

相关推荐
李日灐9 小时前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树
汉克老师9 小时前
GESP2025年6月认证C++二级( 第一部分选择题(1-8))
c++·循环结构·表达式·分支结构·gesp二级·gesp2级
rainbow68899 小时前
C++高性能框架Drogon:后端开发新标杆
c++
Q741_1479 小时前
C++ 优先级队列 大小堆 模拟 力扣 703. 数据流中的第 K 大元素 每日一题
c++·算法·leetcode·优先级队列·
rjc_lihui9 小时前
Windows 运程共享linux系统的方法
windows
失忆爆表症9 小时前
01_项目搭建指南:从零开始的 Windows 开发环境配置
windows·postgresql·fastapi·milvus
Yu_Lijing10 小时前
网络复习篇——网络基础(一)
网络·c++·笔记
Bella的成长园地10 小时前
为什么c++中的条件变量的 wait() 函数需要配合while 循环或谓词?
c++·面试
charlee4410 小时前
为什么现代 C++ 库都用 PIMPL?一场关于封装、依赖与安全的演进
c++·智能指针·raii·pimpl·编译防火墙·封装设计
MSTcheng.10 小时前
CANN ops-math算子的跨平台适配与硬件抽象层设计
c++·mfc