【Chrono Engine学习总结】1-安装配置与程序运行

本文仅用于个人安装记录。

官方安装教程

https://api.projectchrono.org/8.0.0/tutorial_install_chrono.html

Windows下安装

windows下安装就按照教程好了。采用cmake-gui进行配置,建议首次安装只安装核心模块。然后依此configure下irrlicht,sensor模块(依赖其他内容),GPU模块等。

configure后,generate后,用visual studio编译全部模块,需要i5-12代CPU 16线程编译将近20分钟,还是比ubuntu下慢很多啊。

在这里插入图片描述
BUILD_SHARED_LIBS 需要On,因为后面编译自己的程序依赖这些 .a 文件。

Ubuntu下安装:

ubuntu下的安装主要是一个一个自己编译。

1、核心模块安装

核心模块需要:Eigen库,这个默认已经安装好了。

Step 1. 下载代码

由于GPU模块需要第三方库支持,所以使用git下载后更新子模块
Error when building GPU module

git clone https://api.projectchrono.org/8.0.0/tutorial_install_chrono.html
cd chrono
git submodule init
git submodule update

经过这一番操作之后,src/chrono_thirdparty下面会有很多路径,里面已经下载了源码。如果没有,则在编译GPU时会找到不chrono_thirdparty/chpf/particle_writer.hpp等。

Step 2. 编译
进入chrono下载路径,创建build后进入,执行cmake。
此时使用 ccmake 工具查看配置页,能够看到已经识别出了Eigen

在这里插入图片描述
编译后安装。make -jx, sudo make install。install后的内容会安装到默认路径:/usr/local/bin/,在里面可以看到一系列的可执行文件。到这个路径下运行正常即可认为配置成果。

# 如果安装中遇到提示,缺少依赖,安装即可。例如:fatal error: cannot find 'ld': lglut等。
# glut 安装指令
sudo apt install freeglut3
sudo apt install freeglut3-dev

2、安装Irrlicht模块

这个模块是可视化模块,基本上也算是核心的。
如果是windows下安装,按照官方的教程即可,但需要visual studio这个恶心的玩意进行编译。
在ubuntu下,这里采用源码安装:

Step 1. 下载代码:
https://sourceforge.net/projects/irrlicht/files/Irrlicht%20SDK/1.8/
下载1.8.4版本
Step 2. 编译Irrlicht
参考 https://github.com/zaki/irrlicht
由于linux下需要源码编译,所以进入:source路径。此时如果直接执行make指令,只会生成静态链接库.a,而我们需要动态链接库。执行指令

make sharedlib

可以看到能生成.so文件,然后执行 sudo make install安装。
在这里插入图片描述Step 3. 编译带Irrlicht的chrono
此时回到chrono的build路径,用ccmake .指令修改配置,设置 ENABLE_MODULE_IRRLICHT 为true,然后按键c进行configure,之后会自动弹出来,要求配置Irrlicht的路径。如果正常,会自动填写路径。如果没有,则手动修改 IRRLICHT_INSTALL_DIRIRRLICHT_LIIBRARY为刚刚安装的路径:
在这里插入图片描述再次按下c,后configure如果没有问题,则按键g,进行generate。

之后再次执行make,和install之后,可以在安装路径下面看到生成了依赖 IRR 的可执行程序。选一个demo_IRR_assests执行如果正常即可。

我在运行时遇到一个bug,报错:在/usr/local/lib下找不到libirrlicht.so.1.8,但这个路径下确实有这两个库。后来发现,应该是没有刷新缓存。执行sudo ldconfig指令一遍即可。

3、安装Sensor模块

https://api.projectchrono.org/module_sensor_installation.html
安装sensor模块,依赖较多。硬件需要:NVIDIA GPU显卡、显卡驱动;软件包括:CUDA, OptiX, GLFW, GLEW, OpenGL等。

Step 1. cuda的安装
这个略了,因为本身电脑自带cuda。
Step 2. OptiX安装
安装7.7版本;
Step 3/4 GLEW/GLFW安装
GLFW等需要下载代码后自行编译。

然后再在configure里面enable需要用到的模块,然后把没有找到的路径加进去。

Windows下运行

windows下运行教程:
https://api.projectchrono.org/tutorial_install_project.html

Step 1. CMake生成配置文件
在这里插入图片描述
这张图清楚的解释了如何编译自己的程序。首先需要已经安装好chrono,提供 .lib 文件用于编译,同时再运行程序时需要找到 .dll 文件。因此这两个都不可或缺。

按照教程,另起一个cmake-gui,然后在里面配置路径,configure,需要指定Chrono的cmake的路径:

generate即可。

Step 2. VS内部编译配置

generate之后,用vs打开 .sln 文件,进行编译。编译时,需要找到对应的 dlllib文件,这时候在vs里面设置,或者直接将安装生成的dll拷贝到当前程序下面即可。注意Debug模式和Release模式需要的dll不一样,需要对应。

注意,如果用到sensor模块,需要将OptiX的头文件路径添加到vs里面:
在这里插入图片描述
时需要把上面编译出来的dll和lib放到路径下。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

正则表达式可视化工具regex-vis

什么是正则表达式 ? 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。【百度百科】 正则表达式用简短…

python 视频硬字幕去除 内嵌字幕去除工具vsr

项目简介 开源地址:https://github.com/YaoFANGUK/video-subtitle-remover Video-subtitle-remover (VSR) 是一款基于AI技术,将视频中的硬字幕去除的软件。 主要实现了以下功能: 无损分辨率将视频中的硬字幕去除,生成去除字幕后…

《学成在线》微服务实战项目实操笔记系列(P1~P49)【上】

《学成在线》项目实操笔记系列【上】,跟视频的每一P对应,全系列12万字,涵盖详细步骤与问题的解决方案。如果你操作到某一步卡壳,参考这篇,相信会带给你极大启发。同时也欢迎大家提问与讨论,我会尽力帮大家解…

小华和小为的聚餐地点 - 华为OD统一考试

OD统一考试(C卷) 分值: 200分 题解: Java / Python / C++ 题目描述 小华和小为是很要好的朋友,他们约定周末一起吃饭。 通过手机交流,他们在地图上选择了多个聚餐地点(由于自然地形等原因,部分聚餐地点不可达)。 求小华和小为都能到达的聚餐地点有多少个? 输入描述…

【小白开服日记】幻兽帕鲁服务器如何搭建?

玩转幻兽帕鲁服务器,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

代码编辑器1.9.0

多线程&#xff01;&#xff01;&#xff01; #include <winsock2.h> #include <windows.h> #include <iostream> #include <stdlib.h> #include <string.h> #include <fstream> #include <conio.h> #include <stdio.h> #incl…

Java并发(二十三)----同步模式之保护性暂停

1、定义 即 Guarded Suspension&#xff0c;用在一个线程等待另一个线程的执行结果 要点 有一个结果需要从一个线程传递到另一个线程&#xff0c;让他们关联同一个 GuardedObject 如果有结果不断从一个线程到另一个线程那么可以使用消息队列 JDK 中&#xff0c;join 的实现…

嵌入式学习第十六天!(Linux文件查看、查找命令、标准IO)

Linux软件编程 1. Linux&#xff1a; 操作系统的内核&#xff1a; 1. 管理CPU 2. 管理内存 3. 管理硬件设备 4. 管理文件系统 5. 任务调度 2. Shell&#xff1a; 1. 保护Linux内核&#xff08;用户和Linux内核不直接操作&#xff0c;通过操作Shell&#xff0c;Shell和内核交互…

Ubuntu Linux 下安装和卸载cmake 3.28.2版本

一、安装cmake 1.首先&#xff0c;先从cmake官网下载cmake-3.28.2-linux-x86_64.tar.gz 2.用FinalShell 等文件上传工具&#xff0c;将这个压缩包上传到 虚拟机的某个路径去&#xff08;自选&#xff09; 3. cd /usr/local/bin/&#xff0c;然后创建cmake文件夹&#xff0c;…

重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(二)

第二部分&#xff1a;自动内存管理机制 第2章&#xff1a;Java内存区域与内存溢出异常 2.1 概述 Java 与 C 之间有一堵由内存动态分配和垃圾收集技术围成的高墙。 Java 程序员在 虚拟机自动内存管理机制 的帮助下&#xff0c;无需为每一个 new 操作去写配对的 delete/free …

Cox等级资料是个坑

R语言做&#xff01;初学者先进来看看&#xff01;&#xff01;&#xff01; SCI冲 COX多因素模型需要满足的条件&#xff1a; 1.各观测值间相互独立&#xff0c;即残差之间不存在自相关&#xff1b; 2.因变量和自变量之间存在线性关系&#xff1b; 3.残差的方差齐&#xf…

鸿蒙ArkUI实现开关switch组件

鸿蒙ArkUI官方提供的toggle组件实现了开关的样式&#xff0c;但在使用过程中还是非常的不方便。 DIY可视化对鸿蒙ArkUI实现开关switch组件扩展后满足基本的switch需求&#xff0c;支持绑定值、设置标题文本、整个背景样式等。 /*** 开关*/ Component export default struct Di…

Angular BaseView抽离页面公用属性

前言 如果有一系列的页面布局很类似&#xff0c;为了节省时间&#xff0c;我们可以把这些类似的页面所通用的属性和方法抽离成一个BaseView&#xff0c;让其它页面继承该基础页面&#xff0c;同时将一些经常改变的属性和差异的属性写到配置文件里。例如树容器初始时是否展开、…

npm ERR! code CERT_HAS_EXPIRED

执行npm i报错&#xff1a; npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! network request to https://registry.npmjs.org/react-redux failed, reason: connect ETIMEDOUT 104.16.2.35:443 npm ERR! network This is a problem rel…

[设计模式Java实现附plantuml源码~结构型]处理多维度变化——桥接模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

python_蓝桥杯刷题记录_笔记_全AC代码_入门3

前言 记录我的解法以及笔记思路&#xff0c;谢谢观看。 题单目录 1.P2141 [NOIP2014 普及组] 珠心算测验 2.P1567 统计天数 3.P1055 [NOIP2008 普及组] ISBN 号码 4.P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here 5.P1308 [NOIP2011 普及组] 统计单词数 6.P1047 […

[职场] CAD设计师简历模板 #微信#知识分享#学习方法

CAD设计师简历模板 一份优秀的简历能帮助你更好地让你所应聘的公司了解你&#xff0c;并能更好地找到你想要的工作。因此&#xff0c;如何撰写一份优异的简历显得尤为重要。以下是申请“CAD设计师”职位时的一份简历模板&#xff0c;供大家参考阅读。 蓝山简历 求职意向&#…

CSDN文章导出工具

源码地址&#xff1a; github:https://github.com/lishuangquan1987/CSDNExportergitee:https://gitee.com/lishuangquan1987/csdnexporter 介绍 最近有CSDN博客导出来的需求&#xff0c;翻看了很多开源工具&#xff0c;都不能用或者不好用&#xff0c;于是决定自己做一个。…

vulhub中Adminer远程文件读取漏洞复现(CVE-2021-43008)

Adminer是一个PHP编写的开源数据库管理工具&#xff0c;支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。 在其版本1.12.0到4.6.2之间存在一处因为MySQL LOAD DATA LOCAL导致的文件读取漏洞。 参考链接&#xff1a; https://gith…

外包干了10个月,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…