使用CMake+vcpkg生成VS2022工程——以开源库openMVS为例

news2025/2/28 19:40:16

使用CMake+vcpkg生成VS2022工程——以开源库openMVS为例

背景

想在openMVS应用的基础上做一些改造,于是下载了其开源代码。为了改造它,首先要了解程序执行流程,要是能在VS里以debug模式来运行就好了!
过去接触的开源软件/库的编译大多是下面的模式:

mkdir build
cd build
cmake ..
make
make install

我们希望,最后的make编译在VS2022中进行,以便断点调试和修改源码重新编译。
vcpkg的发展使我们的希望成真。下面介绍我推荐的流程:

操作流程

安装vcpkg,cmake,VS2022等基础性软件。

  1. 根据项目需要,使用vcpkg安装所有依赖库。

  2. 启动cmake-gui.exe,选择源码路径、编译生成路径,然后点击Configure

  3. 在弹出的对话框中,Specify the generator for this project项请选择Visual Studio 17 2022(或者你已经安装的其他任意版本);底部四个单选按钮请选择Specify toolchain file for cross-compiling
    在这里插入图片描述

  4. 选择vcpkg路径下的scripts/buildsystems/vcpkg.cmake,点击Finish。
    在这里插入图片描述

  5. 然后等待Configure完成。此时对话框中大部分条目标红。
    在这里插入图片描述
    根据自己的需要作修改后,再次点击Configure

  6. 完成后,如果没有提示报错信息,点击Generate,生成VS2022解决方案(.sln)。

  7. 点击Open Project,接下来就在VS里大展拳脚吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/556211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Codeforces Round 835 (Div. 4) Tutorial (zh)

题目链接 A. Medium Number 题意: 给三个数 a , b , c a,b,c a,b,c,找出中间的那个数 eg. a ≤ b ≤ c a \leq b \leq c a≤b≤c 输出 b b b Example input 9 5 2 6 14 3 4 20 2 1 1 2 3 11 19 12 10 8 20 6 20 3 4 1 3 19 8 4output 5 4 2 2 12 10 …

[Nacos] Nacos Client获取调用服务的提供者列表 (四)

文章目录 1.Nacos Client获取调用服务的提供者列表1.1 从Ribbon的负载均衡入手到Nacos Client获取调用服务的提高者列表1.2 getServers方法返回分析1.3 通过selectInstances方法查找Instances实例1.4 获取到要调用服务的serviceInfo Nacos Client 从Ribbon负载均衡调用服务。 …

无公网IP,SSH远程连接Linux CentOS

转载自cpolar内网穿透的文章:无公网IP,SSH远程连接Linux CentOS【内网穿透】 本次教程我们来实现如何在外公网环境下,SSH远程连接家里/公司的Linux CentOS服务器,无需公网IP,也不需要设置路由器。 视频教程 【SSH远程…

汇编十二、定时/计数器

1、功能 定时器/计数器的核心部件是一个加法(也有减法)的计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟,则为定时方式,此时定时器/计数器每12个时钟周期或者每6个时钟周期得到一个计数脉冲&…

Sentinel简介和安装

1.Sentinel简介 官方Github 官方中文文档Github 官方文档 1.1.Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 …

HTB-Agile

HTB-Agile 信息收集80端口漫长的兔子洞之旅 立足www-data -> corumcorum -> edwardsedwards -> root 信息收集 80端口 漫长的兔子洞之旅 我注意到系统为我分配了一个session,是以eyj开头的。 拿去jwt.io看看。 额,可能后面会用先留在这&#…

实验5 单选多选、进度条、图像显示等组件使用

实验内容和步骤 以下习题需要自己设计界面内容,尽量丰富,并且突出创新和亮点,不可简单仿照例题。 1.设计并实现音乐播放器的进度条界面。 2.设计并实现含有多选控件的界面。 3.设计并实现含有单选控件的界面。 4.设计并实现含有图像显示的界…

华为OD机试真题 Java 实现【去除多余空格】【2023Q1 200分】

一、题目描述 去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。 条件约束: 不考虑关键词起始和结束位置为空格的场景;单词的的开始和结束下标保证…

springboot项目:瑞吉外卖 前后端 代码、思路 详细分析 part6

part1 part2 part3 part4 part5 part6(本页) 7. 菜品展示、购物车、下单 功能开发 7.1 导入用户地址簿相关功能代码 7.2 菜品展示 7.3 购物车 7.4 下单 7.1 导入用户地址簿相关功能代码 7.1.1 整体分析 需求分析 数据模型需要开发的模块:新增收获地址、设置默认…

【Mysql】初识 Mysql

文章目录 【Mysql】初识 Mysql数据库初识主流关系型数据库理解数据库mysql基本操作连接服务器理解服务器,数据库,表关系小案例数据逻辑存储 mysql架构sql分类存储引擎 【Mysql】初识 Mysql 数据库初识 数据库概念 数据库是“按照数据结构来组织、存储和…

v-model使用及原理

关于v-model,vue2与vue3用法不一致,本文学习采用了vue3官网文档。与vue2区别写在本文末尾。一、为什么使用v-model? v-model指令可以在表单input、textarea以及select元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素…

马哈鱼SQLFLow直接数据流介绍

直接数据流介绍 本文将介绍一些生成直接数据流的SQL元素,这些元素是生产数据流的主要原型。 1、Select 示例语句: SELECT a.empName "eName" FROM scott.emp a Where sal > 1000目标列“eName”的数据来自scott.emp.empName列&#xff…

【安卓源码】安卓app应用进程启动原理

目录 0. 应用app 调用 startActivity 1. AMS 调用 startActivity 方法 2. zygote socket 通信,通知 zygote 创建应用进程 1-1) 去fork 一个子进程 Zygote.forkAndSpecialize 1-2)执行子进程方法 handleChildProc 1-3)执行父进程方法 ha…

用户管理 ---MySQL总结(七)

用户管理 对于MySQL的用户也是需要进行管理,这里的东西类似与Linux的多用户管理,基本相同 用户属性 MySQL的用户都是储存在数据库mysql的user之中。 这里使用desc table_name;查看user表的属性。 desc user;//下面的就是输出的结果host:登陆限制 user…

chatgpt赋能Python-python_ai_app

用Python编写AI应用程序 Python是目前最受欢迎的编程语言之一,被广泛用于各种应用程序的开发。其中,人工智能(AI)应用程序成为Python编程人员最感兴趣和热门的领域之一。这篇文章将重点介绍用Python编写AI应用程序的好处&#xf…

从零开始Vue3+Element Plus后台管理系统(16)——组合式函数hook二次封装el-table

终于写到组合式函数了,它类似vue2的mixin,但优于mixin,用好了可以事半功倍。 在 Vue 应用的概念中,“组合式函数”(Composables) 是一个利用 Vue 的组合式 API 来封装和复用有状态逻辑的函数。 官方文档:https://cn.vu…

chatgpt赋能Python-python_chan

Python的Channel模块:优化你的并发控制 Python是一门优秀的编程语言,在众多优秀的模块中,Channel模块是一个备受喜爱的模块。它是Python并发控制的建议之一,可以被用来在多个协程之间传递和传输消息。这个模块不仅仅是Python 3.5…

chatgpt赋能Python-python_cal

Python编程的神器——Cal 随着人工智能、机器学习等技术的发展,Python语言成为了最热门的编程语言之一。Python可以帮助程序员快速实现自己的想法,让程序的编写变得更加简单和容易。在Python中,有许多高效好用的工具和库,而其中最…

chatgpt赋能Python-python_chi2

Python中的Chi-Squared测试:一种用于统计分析的重要方法 数据分析是当今商业和科学中最重要的工具之一,它可以帮助人们了解他们的业务和科学领域。其中数据分析的技术以Python为代表的编程语言越来越受到欢迎,这些方法可以用于分类、回归、聚…

《数据可视化》课程期末项目_地理交通数据可视化

2022年上海疫情爆发期间交通数据可视化分析 《数据可视化》课程期末项目报告-选题:地理数据可视化 GitHub源码地址(如果有用点个 star 吧~谢谢!) 文章目录 1.0 项目简介2.0 数据简介2.1 航线数据2.2 公交路线数据2.1 项目流程 3.0 数据处理3.1 航线数据…