1. 为什么需要自行编译 curl 8.15.0
在开发过程中,我们经常需要使用 curl 这个强大的网络传输工具库。虽然官方提供了源码,但直接使用预编译版本可以节省大量配置时间。最近我在一个需要 HTTPS 通信的项目中就遇到了这个问题——网上能找到的预编译版本要么太老(很多还停留在 7.x 版本),要么只有源码需要自己编译。
经过几天的搜索无果后,我决定自己动手编译 curl 8.15.0 版本。这个版本有几个重要优势:
- 修复了多个安全漏洞,特别是与 TLS 握手相关的几个关键问题
- 改进了 HTTP/2 的支持
- 可能是最后一个使用传统 autotools 构建系统的版本(后续版本可能会改用 CMake)
提示:如果你也遇到类似情况,建议直接使用官方源码编译,这样能确保获得最新安全补丁,同时避免第三方编译版本可能引入的兼容性问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 编译环境准备
2.1 硬件和软件要求
在开始编译前,需要准备以下环境:
- Windows 10/11 64位系统
- Visual Studio 2026(社区版或专业版均可)
- Git for Windows(用于获取源码)
- NASM 汇编器(用于编译某些加密组件)
- Perl(用于生成某些头文件)
我使用的是以下具体版本:
- Visual Studio 2026 17.6.5 社区版
- Git 2.42.0.windows.2
- NASM 2.16.01
- Strawberry Perl 5.32.1.1
2.2 源码获取与验证
从官方仓库获取源码:
bash复制git clone https://github.com/curl/curl.git
cd curl
git checkout curl-8_15_0
获取源码后,强烈建议验证其完整性:
bash复制# 验证签名
gpg --verify curl-8.15.0.tar.gz.asc curl-8.15.0.tar.gz
# 计算SHA256校验和
certutil -hashfile curl-8.15.0.tar.gz SHA256
3. 详细编译步骤
3.1 依赖项准备
curl 编译需要几个关键依赖项:
- OpenSSL(提供 TLS 支持)
- zlib(用于压缩)
- libssh2(用于 SCP/SFTP)
我选择使用 vcpkg 来管理这些依赖:
bash复制vcpkg install openssl:x64-windows openssl:x86-windows
vcpkg install zlib:x64-windows zlib:x86-windows
vcpkg install libssh2:x64-windows libssh2:x86-windows
3.2 编译配置
在开始菜单中找到 "x64 Native Tools Command Prompt for VS2026",然后执行:
bash复制# 进入curl源码目录
cd
