CMake的使用--以ORCA避碰C++库为例

news2024/12/23 0:28:20

1、安装cmake

链接:Download | CMake

版本需下载Binary distributions这个模块下的

Windows x64 Installer: cmake-3.27.1-windows-x86_64.msi

注意事项

1.1勾选为所有用户添加到PATH路径

Add CMake to the system PATH for all users

1.2安装路径建议直接在c盘根目录

因为方便好找

1.3检查是否安装成功

打开cmd,输入cmake --version

成功显示如下

C:\Users\Administrator>cmake --version
cmake version 3.27.1
​
CMake suite maintained and supported by Kitware (kitware.com/cmake).

2、安装MinGW

参照我的博文使用vscode远程登录以及本地使用的配置(插件推荐)_阿尔帕兹的博客-CSDN博客

3、下载ROV2库

RVO2 Library - Downloads (unc.edu)

ROV2是ORCA这篇论文的代码C++库,核心是避碰算法。此处不做过多阐述,如果不做这个方向的应该也不会看这篇博文吧~

下载到本地后进行解压。

可以看到文件里面的makefile文件的内容如下

.SUFFIXES:

all:
	cd src && $(MAKE) all
	cd examples && $(MAKE) all
	
clean:
	cd src && $(MAKE) clean
	cd examples && $(MAKE) clean

.PHONY: all clean

.NOEXPORT:

cmakelist.txt文件如下

cmake_minimum_required(VERSION 2.8)
project(RVO)

include(CTest)

add_subdirectory(src)
add_subdirectory(examples)

include(CPack)

3.1新建build文件夹

 

3.2进入到build文件夹,右键打开cmd窗口

此处是我安装了git,所以就用了git bash命令窗口,没有的同学,就打开电脑的cmd窗口,用cd命令进入到RVO2/build文件夹下

 

3.3输入代码

cmake .. -G "MinGW Makefiles"

只要你正确安装了mingw和cmake,一般都会执行成功

 

3.4在mingw的安装目录下找到mingw32-make.exe文件

博主的mingw安装路径就是在c盘的根目录C:\mingw64\bin,这一步自行根据自己的安装路径去找这个文件

 

3.5复制到build文件夹下,改名为make.exe

如下所示

 

3.6在cmd窗口输入代码

./make

注意:不要直接输make,因为这里没有直接把这个make.exe添加到PATH,不能直接运行这个命令。

 可以看到成功生成了三个exe文件,放心大胆地使用这个库吧!

同理,这个cmake的使用方法也适用于其他有cmake和cmakelist.txt的文件编译

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

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

相关文章

Dueling Network

Dueling Network —— Dueling Network Architectures for Deep Reinforcement Learning 论文下载地址 论文介绍 图9. Dueling Network 模型结果示意图 Dueling Network与传统DQN的区别在于神经网络结构的不同,Dueling Netowrk在传统DQN的基础上只进行了微小的改动…

python 合并多个excel文件

使用 openpyxl 思路: 读取n个excel的文件,存储在一个二维数组中,注意需要转置。将二维数组的数据写入excel。 安装软件: pip install openpyxl源代码: import os import openpyxl # 将n个excel文件数据合并到一个…

jupyter lab环境配置

1.jupyterlab 使用虚拟环境 conda install ipykernelpython -m ipykernel install --user --name tf --display-name "tf" #例:环境名称tf2. jupyter lab kernel管理 show kernel list jupyter kernelspec listremove kernel jupyter kernelspec re…

微软研究院展示Project Rumi项目;参数高效微调(PEFT)

🦉 AI新闻 🚀 微软研究院展示Project Rumi项目,通过多模态方法增强人工智能理解能力 摘要:微软研究院展示了Project Rumi项目,该项目通过结合文本、音频和视频数据,并采用多模态副语言提示的方法&#xf…

VL 模型 Open-Set Domain Adaptation with Visual-Language Foundation Models 论文阅读笔记

Open-Set Domain Adaptation with Visual-Language Foundation Models 论文阅读笔记 一、Abstract 写在前面 又是一周周末,在家的时间感觉过得很快呀。今天没得时间写博客,留下个标题,明天搞完。 论文地址:Open-Set Domain Adapta…

探索人工智能 | 计算机视觉 让计算机打开新灵之窗

前言 计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。 文章目录 前言…

安全基础 --- https详解 + 数组(js)

CIA三属性:完整性(Confidentiality)、保密性(Integrity)、可用性(Availability),也称信息安全三要素。 https 核心技术:用非对称加密传输对称加密的密钥,然后…

第一篇:一文看懂 Vue.js 3.0 的优化

我们的课程是要解读 Vue.js 框架的源码,所以在进入课程之前我们先来了解一下 Vue.js 框架演进的过程,也就是 Vue.js 3.0 主要做了哪些优化。 Vue.js 从 1.x 到 2.0 版本,最大的升级就是引入了虚拟 DOM 的概念,它为后续做服务端渲…

java+springboot+mysql员工工资管理系统

项目介绍: 使用javaspringbootmysql开发的员工工资管理系统,系统包含超级管理员,系统管理员、员工角色,功能如下: 超级管理员:管理员管理;部门管理;员工管理;奖惩管理&…

电脑技巧:七个非常神奇有趣的网站,值得收藏

目录 1、Airpano 2、AI创作家 3、The Useless Web 4、全球高清实况摄像头 5、MyFreeMP3 6、世界名画拼图 7、纪妖(中国古今妖怪集) 互联网是一个神奇的世界,存在着许多令人惊叹的网站,这里就给大家分享七个非常神奇有趣的网…

快速排序【Java算法】

文章目录 1. 概念2. 思路3. 代码实现 1. 概念 快速排序是一种比较高效的排序算法,采用 “分而治之” 的思想,通过多次比较和交换来实现排序,在一趟排序中把将要排序的数据分成两个独立的部分,对这两部分进行排序使得其中一部分所有…

接口测试—知识速查(Postman)

文章目录 接口测试1. 概念2. 原理3. 测试流程4. HTTP协议4.1 URL的介绍4.2 HTTP请求4.2.1 请求行4.2.2 请求头4.2.3 请求体4.2.4 完整的HTTP请求示例 4.3 HTTP响应4.3.1 状态行4.3.2 响应头4.3.3 响应体4.3.4 完整的HTTP请求示例 5. RESTful接口规范6. 测试用例的设计思路6.1 单…

基于Vue+wangeditor实现富文本编辑

目录 前言分析实现具体解决的问题有具体代码实现如下效果图总结前言 一个网站需要富文本编辑器功能的原因有很多,以下是一些常见的原因: 方便用户编辑内容:富文本编辑器提供了类似于Office Word的编辑功能,使得那些不太懂HTML的用户也能够方便地编辑网站内容。提高用户体验…

关于前端动态调试解密签名校验的分享

首先我们先来看一下,下面这张图是笔者近期测试遇到的问题,那就是程序每次生成请求都会生成signature的验签,该验签生成方式暂不可知,唯一知道的就是用一次就失效,这对测试的成本造成了很不好的影响,那么我们…

setmap使用

目录 set使用 set的模板参数 构造函数 成员函数 insert iterator ​编辑 find count pair pair 的模板参数 make_pair multiset使用 multiset 的模板参数 set 与 multiset 的区别 count map使用 map 的模板参数 构造函数 insert iterator find ​编辑 cou…

ChatGPT: 人机交互的未来

ChatGPT: 人机交互的未来 ChatGPT背景ChatGPT的特点ChatGPT的应用场景结论 ChatGPT ChatGPT是一种基于大数据和机器学习的人工智能聊天机器人模型。它由国内团队发明、开发,并被命名为Mental AI。ChatGPT的目标是通过模拟自然对话的方式,提供高效、智能…

Zebec 创始人 Sam 对话社区,“Zebec 生态发展”主题 AMA 回顾总结

近日,Zebec Protocol 创始人 Sam 作为嘉宾,与社区进行了以“Zebec 生态发展”为主题的 AMA 对话。Sam 在线上访谈上对 Zebec 路线图、Zebec 质押、NautChain通证进行了解读,并对 Zebec 的进展、生态建设的愿景进行了展望。本文将对本次 AMA 进…

【C++】语法小课堂 --- auto关键字 typeid查看实际类型 范围for循环 空指针nullptr

文章目录 🍟一、auto关键字(C11)🍩1、auto的简介🍩2、auto的使用细则🚩auto与指针和引用结合起来使用🚩 在同一行定义多个变量 🍩3、auto不能推导的场景1️⃣auto不能作为函数的参数…

GD32F103VE窗口看门狗定时器

GD32F103VE窗口看门狗定时器 看门狗定时器(WDGT)有两个: 1,独立看门狗定时器(FWDGT) 2,窗口看门狗定时器(WWDGT) 窗口看门狗定时器开启后,其7位向下递减计数器工作。 当"向下递减计数器"的计数值达到"预设的窗口…

【Unity3D】消融特效

1 前言 选中物体消融特效中基于 Shader 实现了消融特效,本文将基于 Shader Graph 实现消融特效,两者原理一样,只是表达方式不同,另外,选中物体消融特效中通过 discard 丢弃片元,本文通过 alpha 测试丢弃片元…