首页 > 其他分享 >vcpkg 从清单文件安装依赖项

vcpkg 从清单文件安装依赖项

时间:2024-10-24 17:17:20浏览次数:8  
标签:依赖 -- Visual vcpkg install 清单 Studio

vcpkg 有两种运行模式:经典模式和清单模式。清单文件有自己的 vcpkg_installed 目录,可在其中安装依赖项,与所有包都安装在通用 %VCPKG_ROOT%/installed 目录中的经典模式不同。 因此,每个项目都可以有自己的清单和自己的一组依赖项,这些依赖项不会与其他项目的依赖项发生冲突。

1. 创建包含清单的项目

#include <iostream>
#include <sqlite3.h>

int main() {
    sqlite3 *db;
    int exit = 0;

    exit = sqlite3_open("test.db", &db);

    if (exit) {
        std::cerr << "Can't open database: " << sqlite3_errmsg(db) << std::endl;
    } else {
        std::cout << "Opened database successfully!" << std::endl;
    }

    sqlite3_close(db);
    return 0;
}

2. 添加依赖项

2.1 在项目路径打开命令行工具

依次点击 工具 -> 命令行 -> 开发者 PowerShell 。

2.2 创建清单文件

vcpkg new --application

2.3 添加依赖项

vcpkg add port fmt
vcpkg add port sqlite3

默认 vcpkg-configuration.json 文件引入了基线约束,指定项目应使用的依赖项的最低版本。

3. 手动安装依赖项

只需在包含清单文件的目录中运行 vcpkg install。该命令完成后,所有生成的包都将出现在 vcpkg_installed 目录中。

vcpkg install

4. 构建项目(可选)

默认情况下,Visual Studio 项目中禁用清单模式。 要启用清单,请在解决方案资源管理器中右键单击项目,选择属性,选择左侧的 vcpkg 选项卡,然后将 Use Vcpkg Manifest 设置为

补充:

1.)已存在清单

error: D:\SynologyDrive\Workstation\Demo\SQLiteDemo\vcpkg.json 下已存在清单。

原因:已经存在 vcpkg.json 文件。

解决:删除 vcpkg.json 文件。

2.)不支持单个包参数

error: 在清单模式下,`vcpkg install` 不支持单个包参数。
要安装其他包,请编辑 vcpkg.json,然后在没有任何包参数的情况下运行 `vcpkg install`。
有关详细信息,请参阅 https://learn.microsoft.com/vcpkg/users/manifests。

原因:使用vcpkg install 时, 多加参数。如: vcpkg install sqlite3 。

解决:在清单模式下,直接使用 vcpkg install 。

3.)MSB3073错误

严重性    代码    说明    项目    文件    行    禁止显示状态    详细信息
错误    MSB3073    命令“"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\vcpkg\vcpkg.exe" install  --x-wait-for-lock --triplet "x64-windows" --vcpkg-root "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\vcpkg\\" "--x-manifest-root=D:\SynologyDrive\Workstation\Demo\SQLiteDemo\\" "--x-install-root=D:\SynologyDrive\Workstation\Demo\SQLiteDemo\vcpkg_installed\x64-windows\\" ”已退出,代码为 1。    SQLiteDemo    C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\vcpkg\scripts\buildsystems\msbuild\vcpkg.targets    183        
严重性    代码    说明    项目    文件    行    禁止显示状态    详细信息
错误    MSB3073    命令“"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\vcpkg\vcpkg.exe" install  --x-wait-for-lock --triplet "x64-windows" --vcpkg-root "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\vcpkg\\" "--x-manifest-root=D:\SynologyDrive\Workstation\Demo\SQLiteDemo\\" "--x-install-root=D:\SynologyDrive\Workstation\Demo\SQLiteDemo\vcpkg_installed\x64-windows\\" ”已退出,代码为 1。    SQLiteDemo    C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\vcpkg\scripts\buildsystems\msbuild\vcpkg.targets    183        

原因:没有足够的权限、已经存在 vcpkg_installed 目录或清单文件配置错误。

解决:删除 vcpkg_installed 目录,以管理员身份运行 Visual Studio,重新生成解决方案。

4.)添加环境变量

设置 VCPKG_ROOT 将告知 vcpkg 实例所在的位置。添加到 PATH 直接从 shell 运行 vcpkg 命令。

标签:依赖,--,Visual,vcpkg,install,清单,Studio
From: https://blog.csdn.net/m0_58648890/article/details/143183526

相关文章

  • vue3,清除缓存,重新安装依赖
     vue3,清除缓存,重新安装依赖如果你正在使用Vite,尝试清除缓存或重启开发服务器:#清除缓存rm-rfnode_modules/.vite #或者重启开发服务器npmrundev #或者yarndev----------------------------------------------vue3重新安装依赖 如果上述步骤都不能解决......
  • 2024/10/23日 日志--》关于Maven的基础学习--2 坐标与依赖范围
    对Maven的学习即将步入卫生,下面是Maven中的坐标和依赖范围的简单笔记点击查看代码--Maven坐标详解--·什么是坐标?---》Maven中的坐标是资源的唯一标识---》使用坐标来定义项目或引入项目中需要的依赖--·Maven坐标的主要组成---》groupld:定义当前Maven项目隶......
  • SSM导入依赖
    1需要导入的依赖`junitjunit3.8.1testorg.springframeworkspring-webmvc5.3.12org.springframeworkspring-jdbc5.2.10.RELEASEorg.springframeworkspring-test5.2.10.RELEASEorg.mybatismybatis3.5.5mysqlmysql-connector-java5.1.47org.my......
  • Java项目中引入达梦数据库依赖驱动并且操作链接数据库
    本人详解作者:王文峰,参加过CSDN2020年度博客之星,《Java王大师王天师》公众号:JAVA开发王大师,专注于天道酬勤的Java开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯山峯转载说明:务必注明来源(注明:作者:王文峰哦)Java项目中引......
  • Spring Boot 依赖注入为 null 问题
    目录问题省流代码复现TestServiceTestAspectTestController源码分析AbstractAutoProxyCreatorCglibAopProxyEnhancer问题工作中,在负责的模块里使用@DubboService注解注册了一个dubbo接口,给定时任务模块去调用。在自我调试阶段,需要在本地自己验证一下接口的功......
  • Maven入门到进阶:构建、依赖与插件管理详解
    文章目录一、Maven介绍1、什么是Maven2、Maven的核心功能二、Maven核心概念1、坐标GAVP1.1、GroupId1.2、ArtifactId1.3、Version1.3.1、版本号的组成1.4、Packaging2、POM、父POM和超级POM2.1、POM(ProjectObjectModel)2.1、父POM(ParentPOM)2.3、超级POM(SuperPOM......
  • SpringBoot循环依赖
    在SpringBoot(以及Spring框架)中,循环依赖是指两个或多个Bean互相依赖,导致Spring在创建这些Bean时无法正常进行依赖注入。例如,假设有两个类A和B,A依赖于B,而B又依赖于A。在这种情况下,Spring框架在尝试实例化其中一个Bean时,会发现另一个Bean尚未创建,从而产生循环依赖问题。循环依赖......
  • Spring依赖注入
    依赖注入(DependencyInjection,DI)**是软件设计中的一种设计模式,用来实现对象之间的解耦。在这种模式下,对象不需要自己创建其依赖的对象,而是将所需的依赖通过外部注入到对象中。这种方式使得代码更加模块化、灵活且容易测试。在Spring框架中,依赖注入是核心功能之一,Spring通过......
  • 01背包、有依赖的背包
    01背包、有依赖的背包P1048[NOIP2005普及组]采药01背包(模版)给定一个正数t,表示背包的容量有m个货物,每个货物可以选择一次每个货物有自己的体积costs[i]和价值values[i]返回在不超过总容量的情况下,怎么挑选货物能达到价值最大返回最大的价值二维dp数组#incl......
  • 6-2.Android 对话框之基础对话框问题清单(UI 线程问题、外部取消、冲突问题、dismiss
    对话框对话框(Dialog)是一种常用的UI组件,它主要用于显示信息、接收用户操作反馈对话框可以包含各种元素,但是主要还是以文本、按钮为主,其次是列表其中,基础对话框是Android中最简单的对话框,而后是进度对话框、自定义对话框等一、UI线程问题1、UI线程中创建对话......