C++包管理工具vcpkg的安装使用教程
前言
使用vcpkg可以更方便地安装各种库,省去配置的时间和配置失败的风险,类似python中的anaconda,懒人必备
参考
安装参考:https://bqcode.blog.csdn.net/article/details/135831901?fromshare=blogdetail&sharetype=blogdetail&sharerId=135831901&sharerefer=PC&sharesource=weixin_45702459&sharefrom=from_link
命令参考:https://blog.csdn.net/lizhichao410/article/details/132339064?fromshare=blogdetail&sharetype=blogdetail&sharerId=132339064&sharerefer=PC&sharesource=weixin_45702459&sharefrom=from_link
第二个链接中提供了很多vcpkg的命令使用,包括库的导出和更新,但是我这里用不到,所以就没写。
VS添加英文语言包
首先要在vs中添加英语语言包:
在查找中找到visual studio installer:

点击修改:

在语言包中勾选英语并安装:

cmake工具安装
其实vcpkg还是使用cmake作为编译工具的,所以得安装cmake,地址:https://cmake.org/download/
根据自己电脑是64位还是32位选择installer,我电脑是x64,所以选择cmake-3.30.1-windows-x86_64.msi

下载之后双击msi,根据指示安装完成。
下载Vcpkg
此处可以使用git clone,但是需要外网,也可以到git网页中下载压缩包并解压:
git clone https://github.com/microsoft/vcpkg.git
安装Vcpkg

右键,以管理员身份运行
安装完成后出现exe

将vcpkg添加进vs中
文件夹内右键,在终端中打开,输入:

./vcpkg integrate install
出现以下结果则为安装成功。

在任意一个项目中打开vs,在项目属性界面就可以vcpkg

vcpkg安装库并测试
以好装的eigen库和难装的matio库做演示
在终端中搜索eigen
./vcpkg search eigen
找到eigen3

安装eigen3
./vcpkg install eigen3:x64-windows
安装成功

在终端中搜索matio
./vcpkg search matio
找到matio

安装matio
./vcpkg install matio:x64-windows
安装成功

安装成功后在终端再次运行以下命令来让全局库集成生效
./vcpkg integrate install
使用以下代码对eigen和matio进行测试
#include <iostream>
#include <vector>
#include <Eigen/Dense>
#include <matio.h>int main() {// ==================== Eigen 库测试部分 ====================std::cout << "=== Eigen 库测试 ===" << std::endl;// 创建 Eigen 矩阵Eigen::MatrixXd eigen_mat(3, 3);eigen_mat << 1, 2, 3,4, 5, 6,7, 8, 9;std::cout << "Eigen 矩阵:\n" << eigen_mat << std::endl;// 矩阵运算Eigen::MatrixXd eigen_mat_squared = eigen_mat * eigen_mat;std::cout << "Eigen 矩阵平方:\n" << eigen_mat_squared << std::endl;// 特征值分解Eigen::SelfAdjointEigenSolver<Eigen::MatrixXd> eigensolver(eigen_mat);if (eigensolver.info() != Eigen::Success) {std::cerr << "特征值计算失败" << std::endl;return 1;}std::cout << "特征值:\n" << eigensolver.eigenvalues() << std::endl;// ==================== Matio 库测试部分 ====================std::cout << "\n=== Matio 库测试 ===" << std::endl;// 创建 matio 变量size_t dims[2] = { 3, 3 };double data[9] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9 };matvar_t* matvar = Mat_VarCreate("test_matrix", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, data, 0);if (matvar == NULL) {std::cerr << "创建 Matio 变量失败" << std::endl;return 1;}// 打印 matio 变量信息std::cout << "Matio 变量名称: " << matvar->name << std::endl;std::cout << "Matio 变量大小: " << matvar->dims[0] << "x" << matvar->dims[1] << std::endl;// 访问数据double* mat_data = static_cast<double*>(matvar->data);std::cout << "Matio 矩阵数据:\n";for (size_t i = 0; i < 3; ++i) {for (size_t j = 0; j < 3; ++j) {std::cout << mat_data[i + j * 3] << " ";}std::cout << std::endl;}// ==================== Eigen 和 Matio 交互测试 ====================std::cout << "\n=== Eigen 和 Matio 交互测试 ===" << std::endl;// 将 Eigen 矩阵转换为 Matio 变量Eigen::MatrixXd eigen_to_convert(2, 2);eigen_to_convert << 1.5, 2.5, 3.5, 4.5;size_t conv_dims[2] = { static_cast<size_t>(eigen_to_convert.rows()),static_cast<size_t>(eigen_to_convert.cols()) };// 注意: 这里直接使用 Eigen 的数据指针,确保内存布局匹配 (列优先)matvar_t* converted_var = Mat_VarCreate("eigen_matrix", MAT_C_DOUBLE, MAT_T_DOUBLE,2, conv_dims, eigen_to_convert.data(), 0);if (converted_var == NULL) {std::cerr << "转换 Eigen 矩阵到 Matio 变量失败" << std::endl;Mat_VarFree(matvar);return 1;}std::cout << "从 Eigen 转换的 Matio 变量数据:\n";double* conv_data = static_cast<double*>(converted_var->data);for (size_t i = 0; i < 2; ++i) {for (size_t j = 0; j < 2; ++j) {std::cout << conv_data[i + j * 2] << " ";}std::cout << std::endl;}// 清理资源Mat_VarFree(matvar);Mat_VarFree(converted_var);std::cout << "\n测试完成!" << std::endl;return 0;
}
测试成功,全程不需要配置属性中的环境。

相关文章:
C++包管理工具vcpkg的安装使用教程
前言 使用vcpkg可以更方便地安装各种库,省去配置的时间和配置失败的风险,类似python中的anaconda,懒人必备 参考 安装参考:https://bqcode.blog.csdn.net/article/details/135831901?fromshareblogdetail&sharetypeblogde…...
微服务面试题:配置中心
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
Qt msvc2017程序无法用enigma vitrual box打包,用winrar打包
我们通常打包Qt程序用Enigma virtual box。这样我们的程序就可以在别的电脑上也能运行,但是有时候,我们发现Enigma virtual box在打包的时候,对于msvc2017需要编译的程序中引用webengineview模块,打包时候发现不能运行。 我们如何…...
微服务集成测试 -华为OD机试真题(A卷、JavaScript)
题目描述 现在有n个容器服务,服务的启动可能有一定的依赖性(有些服务启动没有依赖),其次,服务自身启动加载会消耗一些时间。 给你一个n n 的二维矩阵useTime,其中useTime[i][i]10表示服务i自身启动加载需…...
Springboot实战:如何用Docker和Kubernetes部署微服务
前言 随着微服务架构的普及,如何高效部署和管理这些分布式服务成为了开发者面临的重要挑战。Spring Boot凭借其简化配置、快速开发的特性,成为了构建微服务的理想框架;而Docker和Kubernetes则分别解决了服务的容器化和编排问题。本文将详细介…...
Mac: 运行python读取CSV出现 permissionError
在MAC机器里,之前一直运行程序在某个指定的目录下读取excel和csv文件,没有出现错误,有一天突然出现错误:permissionError:[Errno 1] Operation not permitted, 具体错误信息如下: 经过调查得知,…...
UE5 学习笔记 FPS游戏制作30 显示击杀信息 水平框 UI模板(预制体)
文章目录 一制作单条死亡信息框水平框的使用创建一个水平框添加子元素调整子元素顺序子元素的布局插槽尺寸填充对齐 制作UI 根据队伍,设置文本的名字和颜色声明变量 将变量设置为构造参数根据队伍,设置文本的名字和颜色在构造事件中,获取玩家…...
西门子TCP通讯过程中硬件连接突然断开
通信原理探秘又结合在工作中遇到的问题,关注到了通讯中的KeepAlive定时器的设置,所以做了如下实验。 硬件: 1513PLC TCP客户端 PC TCP服务器 前提条件:禁用PLC侧KeepAlive 程序: 测试流程: 打开PC端网络调试助手,设置为TCP服务器,打开链接; PC端打开WireShack软…...
Android学习总结之算法篇三(打家劫舍)
打家劫舍一 // 动态规划 class Solution {public int rob(int[] nums) {if (nums null || nums.length 0) return 0;if (nums.length 1) return nums[0];int[] dp new int[nums.length];dp[0] nums[0];dp[1] Math.max(dp[0], nums[1]);for (int i 2; i < nums.lengt…...
【蓝桥杯】单片机设计与开发,速成备赛
一、LED模块开看,到大模板 二、刷第零讲题目(直接复制模板) 三、空降芯片模板直接调用部分(听完再敲代码) 四、第十三讲开刷省赛题(开始自己背敲模板) 五、考前串讲刷一遍 b连接࿱…...
【操作系统】Linux进程管理和调试
在 Linux 中,可以通过以下方法查看 PID(进程ID)对应的进程名称和详细信息: 1. 使用 ps 命令(最直接) ps -p <PID> -o pid,comm,cmd示例: ps -p 1234 -o pid,comm,cmd输出: P…...
2025宁德时代测评Verify考什么?网申测评如何通过SHL笔试|附真题线上笔试考点、高分攻略、CATL新能源科技SHL测评宁德社招题目、面试攻略、求职建议
——职小豚 带你拆解新能源巨头招聘密码 一、宁德时代:新能源赛道「超级独角兽」 作为全球动力电池龙头,宁德时代(CATL)的江湖地位无需多言: 技术硬实力:麒麟电池、钠离子电池、无钴电池等黑科技加持&…...
基于 Ollama DeepSeek、Dify RAG 和 Fay 框架的高考咨询 AI 交互系统项目方案
基于 Ollama DeepSeek、Dify RAG 和 Fay 框架的高考咨询 AI 交互系统 一、项目概述 本项目旨在构建一个智能化的高考咨询助手,结合 AI 大模型、知识增强(RAG)和 3D 数字人交互,为用户提供智能高考问答、志愿填报建议、政策解读等…...
【 Vue 2 中的 Mixins 模式】
Vue 2 中的 Mixins 模式 在 Vue 2 里,mixins 是一种灵活的复用代码的方式,它能让你在多个组件间共享代码。借助 mixins,你可以把一些通用的选项(像 data、methods、computed 等)封装到一个对象里,然后在多…...
Spring Boot @RequestParam 解析参数时的常见问题及解决方案
1,遇到的问题:将后端接口写完后我想通过PostMan进行简单的测试一下,一不小心就遇到了这样的情况: org.springframework.web.bind.MissingServletRequestParameterException: Required Integer parameter contractId is not prese…...
linux xargs命令学习
命令描述 xargs从标准输入中读取默认以空格分隔的项(可以使用双引号保护空格)(或单引号或反斜杠)或换行符,并执行命令(默认为/bin/echo)一次或多次,后面跟着任何初始参数从标准输入中…...
Firefox 浏览器同步一个账户和书签网址
Firefox 浏览器同步一个账户和书签网址 Firefox 支持跨设备接续浏览,可实现电脑、手机与平板无缝衔接。无论您在使用哪台设备上使用 Firefox,都能获取书签、浏览历史、保存的密码等信息。当然也能实现windows、ios、linux、android系统中安装firefox浏览…...
Maven多模块项目,其他项目引用子模块的依赖,无法打包,提示没有找到依赖
背景: 微服务项目 每个服务都是单独的项目,会存在依赖关联的问题,在子模块的下面 depoly 之后,就会出现别的项目,无法package 原因: 多模块项目,depoly 需要在父模块下面执行...
mediacodec服务启动时加载media_codecs.xml
media.codec服务启动时, 会创建 implementation::Omx 和 implementation::OmxStore, 构造 Omx时, 会解析codec相关的xml文件,一般从会如下目录中, // from getDefaultSearchDirs() { "/product/etc",&quo…...
本地部署DeepSeek-R1(Dify压力测试和性能调优)
安装压测软件 为了有效测试,应在局域网设备测试,我这里用的服务器是局域网内的Ubuntu,下载的压测软件是WRK apt install wrk测试脚本 为了省事我直接在/root目录下新建lua脚本 vim test.lua脚本内容如下,app-xxxx更换为你工作…...
自动备份文件到服务器,自动备份文件到服务器有哪些方法?
将SQL Server数据库自动备份文件到服务器,可以通过多种方法实现。以下是几种常用的方法: 一、使用SQL Server Management Studio(SSMS)和SQL Server代理 配置SQL Server代理:确保SQL Server代理服务已启动。如果未启…...
Ollama+open-webui搭建私有本地大模型详细教程
Ollamaopen-webui搭建私有本地大模型详细教程 1. 什么是 Ollama? 1.1. Ollama 简介 Ollama 是一个轻量级的 AI 模型运行时,专注于简化 AI 模型的部署和使用。它支持多种预训练模型(如 Llama、Vicuna、Dolly 等),…...
电销行业机器人外呼话术设计:关键注意事项与实践指南
随着人工智能技术的普及,电话营销行业(电销)逐渐引入智能外呼机器人以提升效率、降低成本。然而,机器人外呼的实际效果高度依赖话术设计的合理性。若话术生硬、缺乏策略,不仅可能导致客户反感,还可能引发合…...
GPT-4o 原生图像生成技术解析:从模型架构到吉卜力梦境的实现
最近不少 AI 爱好者、设计师、Vlogger 在社交平台晒出了 GPT-4o 生成的梦幻图像,尤其是吉卜力风格的作品——柔和光影、日系构图、治愈色彩、富有情感的角色表达,一下子击中了无数人的“童年回忆 审美舒适区”。 🎨 下面是一些 GPT-4o 实际生…...
测试cursor-AI编辑器
Cursor是一个免费的,内置AI插件的编辑器,在vscode基础上开发,可以创建和分析代码,还能提出修改建议。官网是 https://www.cursor.com/cn 载入SFTP的方式跟vscode是一样的,但是会有这样的报错: 报错&#x…...
web网站页面测试点---添加功能测试
添加 一、创建新的申请时,关闭网络查看数据是否存在,并提示网络错位相关提示语 二、在文本框内输入数据 1.在文本框内输入空格,查看文本内容前后是否存在空格 2.在文本框内输入最大长度,查看能否正确提交 3.在文本框内输入最大长…...
[首发]烽火HG680-KD-海思MV320芯片-2+8G-安卓9.0-强刷卡刷固件包
烽火HG680-KD-海思MV320芯片-28G-安卓9.0-强刷卡刷固件包 U盘强刷刷机步骤: 1、强刷刷机,用一个usb2.0的8G以下U盘,fat32,2048块单分区格式化(强刷对U盘非常非常挑剔,usb2.0的4G U盘兼容的多&a…...
Spring Boot 快速入手
前言:为什么选择 Spring Boot? 🚀 在现代 Java 开发中,Spring Boot 已成为最流行的后端框架之一。无论是小型 Web 应用、企业级系统,还是微服务架构,Spring Boot 都能提供快速开发、自动配置、轻量级部署的…...
OpenAI最近放出大新闻,准备在接下来的几个月内推出一款“开放”的语言模型
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
数据结构值ST表的详细讲解浅显易懂
定义与原理 ST表,即Sparse Table(稀疏表),是一种基于倍增思想的数据结构。它主要用于在**O(1)**时间复杂度内查询给定区间的最值(最大值或最小值)。其原理是通过预处理,利用倍增的思想…...
