如何使用 vpckg 清单文件安装静态库版本?

nat*_*yer 8 c++ windows visual-studio vcpkg

我试图弄清楚如何配置我的清单文件以使用 vcpkg 的新清单功能编译我的库的静态版本。我当前的清单文件是:

{
  "name": "myProject",
  "version-string": "v0.1",
  ],
  "dependencies": [
    {
      "name": "curl",
      "features" : [
        "openssl"
      ],
      "platform" : "(windows & x64 & static)"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但这会导致没有安装任何内容。该选项"platform" : "windows"x86-windows三元组安装,但我无法找出 的正确参数x64-windows-static

我也很好奇——有没有办法为所有库声明一个三元组,而不是让每个库成为一个 JSON 对象并专门列出它?

Bar*_*hou 1

作为新发布的功能vcpkgmanifest实际上正在开发中。你可以参考微软博客关于manifest的内容。

另外, Githubmanifest上还提供了一个示例供参考。

以下是将现有端口 CONTROL 文件重写为 vcpkg.json 文件的示例:

Source: pango
Version: 1.40.11-6
Homepage: https://ftp.gnome.org/pub/GNOME/sources/pango/
Description: Text and font handling library.
Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz[glib] (!(windows&static)&!osx)


{
  "name": "pango",
  "version-string": "1.40.11",
  "port-version": 6,
  "homepage": "https://ftp.gnome.org/pub/GNOME/sources/pango/",
  "description": "Text and font handling library.",
  "dependencies": [
    "glib",
    "gettext",
    "cairo",
    "fontconfig",
    "freetype",
    {
      "name": "harfbuzz",
      "features": [ "glib" ],
      "platform": "!(windows & static) & !osx"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

最后,关于所有库声明三元组的问题,欢迎将此问题提交给Microsoft DC