自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 不同编译器下共享库的复用 - VCPKG_DISABLE_COMPILER_TRACKING

在开启bianrycache 使用vcpkg构建的库,尤其是在多人合作的共享项目中, 不一定能保证每一个人使用一样版本的编译器,迁移或者共享项目时有可能会面对不同编译器或者不同版本的编译器导致的构建失败的问题。这是因为vcpkg有abi 跟踪机制,vcpkg会把当前构建的库所用到的工具和文件的版本以及triplet通过计算得到的哈希值记录到xxx_vcpkg_abi_info.txt 这个文件中,这样当这些库安装的版本比较低的时候,通过比较这个文件,vcpkg会把这些库都重新构建一遍,得到最新的版本。

2022-09-30 13:46:35 437

转载 在Visual Studio中激活vcpkg环境

在Visual Studio 2022 17.4中,vcpkg环境现在会自动激活。一个vcpkg环境是由一个manifest文件描述的,该文件捕获了构建应用程序所必需的工件()。当前vcpkg工件的体验主要是针对嵌入式开发人员,但我们最终将扩展到所有的C++开发场景。

2022-09-22 18:11:45 1170

转载 vcpkg的Visual Studio组件最低要求

vcpkg的Visual Studio组件最低要求

2022-09-14 17:56:41 1597

转载 vcpkg 常用命令 - Export

注意:所有以x开头的命令或参数目前都只是实验性质的。vcpkg export <pkg>... [opt]…可选参数 命令 说明 --dry-run 仅显示哪些库将会被导出,而不执行实际的导出命令 --raw 导出一个未压缩的文件夹 --nuget 导出一个NuGet软件包 --ifw 导出

2021-08-25 14:54:36 488

转载 vcpkg 常用命令 - Install

注意:所有以x开头的命令或参数目前都只是实验性质的。.\vcpkg.exe install {port name}:{triplets} {可选参数}可选参数 命令 说明 --dry-run 不做任何实质上的下载和安装,仅显示将要被安装的库的名称和版本 --debug 显示详细的库的安装时所需要的环境 --head 安装库的最新的版本

2021-08-25 14:53:30 863

转载 VCPKG 常用命令

注意:所有以x开头的命令或参数目前都只是实验性质的。 命令 说明 vcpkg search [pat] 查询当前版本的vcpkg是否支持名字包含所提供的字符串的库。 此命令有一个可选参数:--x-full-desc,这个参数的作用是确保即使库的描述字段过长,也不会被自动的截断 vcpkg install <pkg>... 安装一个库,此命令有多个可选参数,详情请参考:Ins

2021-08-25 14:50:37 470

原创 Filesystem registries 使用示例

创建注册表参考https://github.com/PhoebeHui/filesystem 及以下文件结构来创建文件及文件夹,或者克隆官方示例库https://github.com/vcpkg/example-filesystem-registry。filesystem/|-- ports/|-------- beicode/|--------------1.0.0/|---------------- portfile.cmake|---------------- vcpkg.j..

2021-08-20 19:33:05 169

原创 Git registries 使用示例

创建注册表1. 创建一个空的github仓库https://github.com/PhoebeHui/vcpkg-registry用于示例。2. Git clonehttps://github.com/PhoebeHui/vcpkg-registry。3. 在 vcpkg-registry 目录下创建以下文件夹及文件。vcpkg-registry/|-- ports/|-------- beicode/|------------ portfile.cmake|-------...

2021-08-20 19:31:20 685

原创 VCPKG 特性 - Registries

背景目前vcpkg提供了大概1500+个库,已经能满足大多数的用户需求。但是对于许多的企业用户来说,因为一些特殊原因,他们更倾向于自己来管理控制所依赖的库。现在vcpkg提供了一种解决方案,即registries,可以很方便的帮助用户来设置使用自定义的的库。配置在vcpkg中,注册表就是库与库之间的不同版本的组合,vcpkg本身就是一个注册表。用同样的方式可以创建并使用一个注册表,目前主要有两种方式可以实现:git registries 与 filesystem registries。Git

2021-08-20 19:22:46 310

转载 vcpkg 特性 - Binarycaching

背景在多个合作开发过程或使用自动化构建或自动化测试时,我们的私有项目每次构建通常需要使用多个依赖库,而这些依赖库在每次构建应当是统一的版本。这样会遇到以下两个问题:1. 通过vcpkg管理依赖项时,需要在每次构建私有项目时重新构建依赖项。2. 多人开发时,需要从vcpkg中将依赖项导出并分发给其他合作开发者。这两个问题导致了我们既花费额外的时间又不能保证依赖项的稳定性,binarycaching正是为了解决该问题而出现的。它将第一次安装的依赖项文件打包并默认存储,如果将来要求 vcpkg

2021-08-20 19:21:29 411

转载 VCPKG 环境变量

VCPKG中有许多的环境变量,如何通过修改环境变量来实现期望的构建结果,可以参照下面的例子:1. 指定特定的工具集当一台机器上同时安装了多个版本的Visual Studio 或是一个Visual Studio安装了多个版本的工具集时,vcpkg会默认调用最新的工具集,若想使用旧的工具集,可通过修改指定triplet文件来实现:例如要在x64-windows triplet下使用VS2017的工具集,可以添加如下内容到 triplets/x64-windows.cmake文件中:set(V

2021-08-13 16:18:31 1192

转载 VCPKG 特性 - Overlay triplets

背景由于个人项目中的设置经常与vcpkg中默认的triplets中的设置不一致,在以前我们只能将自定义的triplet文件添加到VCPKG_ROOT/triplets中并使用install --triplet=CUSTOM_TRIPLET来满足个人的需求。而现在使用overlay triplets就可以解决这类问题。经典模式vcpkg现在对于install、update、upgrade、export与depend-info命令提供了选项 --overlay-triplets,您可以将该选项添

2021-08-13 16:17:08 615

转载 VCPKG 特性 - Overlay ports

背景在我们私有项目中,经常会遇到由于自定义功能而必须修改依赖库的代码然后使用修改代码后生成的库,或一些私有的依赖库未被加入vcpkg中的场景。这时无法通过vcpkg集成功能满足上述的需求只能手动配置这些依赖项的构建流程。overlay ports则是为了满足这些自定义需求而产生的。使用场景 1. 实际项目中所需依赖库的版本高于或低于vcpkg当前提供的版本。 2. 需要修改vcpkg提供的库,才可以满足具体的使用情况,例如修改编译流程,或使用私人fork的repo。3. 需要使用...

2021-08-13 16:13:24 544

原创 VCPKG 特性 - Versioning

背景在实际项目中,您的项目代码需要依赖第三方库的历史版本,以往的做法是将vcpkg回退到需要使用的版本,或者是自定义版本,这会导致其他的库也回退到以前的版本。 现在vcpkg提供了versioning 特性,可以方便地解决这个问题。Versioning 特性是默认开启的,不需要额外的设置来启用。注意:此特性依赖于manifest模式,使用这个特性前请先了解manifest特性。使用示例1. 创建一个简单的cmake工程, 然后让它依赖于 fmt 和 zlib, 假设需要依赖fmt版本大于等于 7

2021-08-12 18:29:42 920

转载 Manifest 使用示例 - Msbuild 工程

注意:在尝试以下示例之前,请先执行 './vcpkg integrate install' 集成命令。1. 创建一个C++控制台程序,名称为test。test.cpp:#include <iostream>#include <fstream>#include <sstream>#include <json/json.h>#define JSON_PATH "../"using namespace std;int main(){

2021-08-12 18:22:39 293

转载 Manifest 使用示例 - CMake 工程

注意:在尝试以下示例之前,请先执行 './vcpkg integrate install' 集成命令。1. 首先在同级文件夹下创建文件vcpkg.json, CMakeLists.txt 与 test.cpp 并写入对应代码:vcpkg.json{ "name": "test", "version-string": "0.0.1", "dependencies": [ "jsoncpp" ]}CMakeLists.txtcmake_minimum_requ

2021-08-12 18:19:54 1032

转载 VCPKG 特性 - Manifest

背景VCPKG目前有2种模式使用提供的库,经典模式和manifest 模式,经典模式最早安装使用库的方式,是为了区分manifest模式给出的名称,manifest 可以理解为清单模式。经典模式下 ,当您在私有项目中使用vcpkg安装的库时,必须首先通过vcpkg install命令安装了依赖的库才可以使用,而且所有安装在vcpkg installed 目录下的库对当前所有项目都是可见的。这会带一些问题,例如2个项目需要各依赖同一个库的不同版本,2个项目中各自依赖的2个库互相冲突,以往的解决方案

2021-08-12 18:14:00 694

原创 在MSbuild工程中使用vcpkg提供的库

在MSbuild 工程中使用示例:1,安装库与集成, 请参考‘在CMake工程中使用vcpkg提供的库’。2,创建 C++ 控制台工程。3,直接可以使用vcpkg提供的库, 可以看到 VS智能感应提示要使用的头文件。注意:vcpkg 默认只能找到 include 文件夹下的头文件。为了防止冲突,vcpkg 添加了一层目录 xxx,将一些库安装在include\xxx 文件夹下,这时候需要手动添加include\xxx 到msbuild 工程中。比如 bullet3,当然这部分库很少,

2021-08-12 18:08:24 172

原创 在CMake工程中使用vcpkg提供的库

应该如何使用vcpkg 提供的库呢,vcpkg提供2种使用方式,一种是在CMake 工程使用,另一种是在MSbuild 工程使用,我们分别提供了示例。如何在CMake 工程中使用?示例:sqlite3第一步: 安装库PS E:\vcpkg\clean\vcpkg> ./vcpkg install sqlite3:x64-windowsComputing installation plan...The following packages will be built and ins

2021-08-12 18:06:00 1356

转载 快速开始 - Unix

首先,下载vcpkg, 我们建议您将vcpkg作为cmake项目的子模块使用。以下示例中涉及的命令在unix系统通用,示例使用Linux系统.usr@usr:/home# git clone https://github.com/microsoft/vcpkg.gitCloning into 'vcpkg'...remote: Enumerating objects: 14, done.remote: Counting objects: 100% (14/14), done.remote:

2021-08-12 18:02:28 230

转载 快速开始 - Windows

首先,下载vcpkg,它可以安装在任何地方,但是通常我们建议您使用 vcpkg 作为 CMake 项目的子模块,并将其全局安装到 Visual Studio 项目中。我们建议您使用如 D:\src\vcpkg 或 D:\dev\vcpkg 的安装目录,否则在安装某些库时,您可能遇到路径问题或权限问题。Windows PowerShellCopyright (C) Microsoft Corporation. All rights reserved.Try the new cross-pla.

2021-08-12 17:52:08 185

转载 VCPKG使用环境要求

VCPKG同时支持Windows、Linux和macOS平台。由于各平台之间的差异性,因此vcpkg对各平台上的使用环境也有不同的要求。Windows平台Window 7或更新的版本 Git Visual Studio2015 Update 3 或更新的版本(安装时选择英语语言包)Linux平台Git g++ >=6在Linux的不同发行版中,需要安装不同的工具包:Debian、Ubuntu、popOS或其他基于Debian的发行版  $ sudo apt-get ...

2021-08-12 17:44:42 136

转载 VCPKG简介

VCPKG是什么VCPKG是微软 C++ 团队开发的适用于 C 和 C++ 库的跨平台开源软件包管理器,它大大简化了 Windows、Linux 和 macOS 上第三方库相关的下载和配置操作,目前已有超过1600个第三方库可以通过vcpkg来安装。VCPKG的优势自动下载开源库源代码。 一键安装第三方库。 源码包的缓存管理和版本管理,可以依需求安装指定的版本。 自动检查库的依赖关系并安装其依赖项。 无缝集成Visual Studio,不用手动设置任何的库相关的路径。 Visual

2021-08-12 17:41:01 687

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除