You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过vcpkg在Windows系统中安装指定旧版本的curl及其依赖库(libssh、OpenSSL、zlib)

如何通过vcpkg在Windows系统中安装指定旧版本的curl及其依赖库(libssh、OpenSSL、zlib)

嗨,我来帮你搞定这个问题!你直接改json里的版本号导致sha校验失败太正常了——vcpkg每个包的版本都和校验值绑定死了,随便改肯定通不过。要安装指定旧版本的curl和它的依赖,有几个靠谱的方法,我给你详细说下:

方案一:用vcpkg.json锁定版本(推荐)

这是vcpkg官方推荐的版本锁定方式,能精准控制每个依赖的版本,还不会破坏vcpkg的原有配置:

  • 在你的项目根目录创建一个vcpkg.json文件,把你需要的curl及依赖的具体版本填进去,示例如下(把版本号换成你需要的旧版本):
{
  "name": "your-project-name",
  "version-string": "1.0.0",
  "dependencies": [
    {
      "name": "curl",
      "version": "7.85.0",
      "features": ["libssh", "openssl"]
    },
    {
      "name": "libssh",
      "version": "0.9.6"
    },
    {
      "name": "openssl",
      "version": "1.1.1t"
    },
    {
      "name": "zlib",
      "version": "1.2.13"
    }
  ]
}
  • 然后在终端运行命令:vcpkg install --triplet x64-windows-static-release,vcpkg会自动根据这个配置拉取对应版本的包,自动处理依赖关系和sha校验,完全不用你手动改文件。

方案二:修改vcpkg端口文件(临时需求用)

如果方案一的版本锁定不满足你的需求,你可以直接修改vcpkg本地的端口文件,但要注意这个修改会被vcpkg更新覆盖:

  • 找到你的vcpkg安装目录下的ports文件夹,比如要改libssh的版本,就进入vcpkg/ports/libssh;改OpenSSL就进vcpkg/ports/openssl。
  • 每个端口文件夹里有vcpkg.json和portfile.cmake:你需要先找到目标旧版本对应的这两个文件内容(可以从vcpkg的git历史里找对应版本的提交),把本地的文件内容替换成旧版本的,确保vcpkg.json里的version和sha256值完全匹配旧版本的包。
  • 替换完成后,再运行你的安装命令:vcpkg install curl[libssh,openssl]:x64-windows-static-release,就能安装指定的旧版本了。

方案三:切换vcpkg到旧版本(适合独立项目)

vcpkg的不同版本对应着一套固定版本的软件包,如果你需要的旧版本刚好是某个vcpkg版本默认的包版本,可以直接切换vcpkg的git版本:

  • 进入你的vcpkg安装目录,运行git log --oneline或者git tag,找到包含你需要的库版本的vcpkg标签或提交记录。
  • 运行git checkout <标签名/提交哈希>切换到该版本的vcpkg,然后再运行安装命令即可。
  • 注意:这个方法会让整个vcpkg回到旧状态,不适合和其他需要新版本库的项目共用,建议为这个项目单独克隆一份vcpkg来操作。

额外注意事项

  • 如果你之前安装过这些库的新版本,记得先运行vcpkg remove --outdated --triplet x64-windows-static-release清理旧的包缓存,避免版本冲突。
  • 填写版本号时一定要准确,必须是vcpkg端口仓库中存在的版本,不然会提示找不到包。

备注:内容来源于stack exchange,提问作者Nzerim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:34:53