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

news2024/10/6 1:38:15

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

官方安装教程

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放到路径下。

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

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

相关文章

JVM 性能调优 - 参数调优(3)

查看 JVM 内存的占用情况 编写代码 package com.test;public class PrintMemoryDemo {public static void main(String[] args) {// 堆内存总量long totalMemory Runtime.getRuntime().totalMemory();// jvm 试图使用的最大堆内存long maxMemory Runtime.getRuntime().maxM…

国内游戏服务器价格表

游戏服务器租用多少钱一年?1个月游戏服务器费用多少?阿里云游戏服务器26元1个月、腾讯云游戏服务器32元,游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选,可以选择轻量应用服务器和云服务器,阿腾云atengyu…

PHP客服系统-vue客服聊天系统

PHP-Vue客服聊天系统是一款高效、灵活的客户服务解决方案,基于ThinkPHP6、Vue3和Workerman(Gateworker)框架开发,专为单商户场景打造。 系统亮点: 分布式部署支持,轻松应对高并发场景;本地消息存储功能,确…

Python 数据分析(PYDA)第三版(四)

原文:wesmckinney.com/book/ 译者:飞龙 协议:CC BY-NC-SA 4.0 八、数据整理:连接、合并和重塑 原文:wesmckinney.com/book/data-wrangling 译者:飞龙 协议:CC BY-NC-SA 4.0 此开放访问网络版本的…

STM32F1 - 点灯-寄存器模式

点灯 实验概述:Step1> 建立工程Step2> 宏定义 - 寄存器地址 实验概述: 用配置寄存器的方式,开关一个LED灯, 只用标准库中提供的启动文件, Step1> 建立工程 出现错误:导入文件类型错误 keil5编译中…

QMUI_Android:提升Android开发效率与质量的利器

QMUI_Android:提升Android开发效率与质量的利器 在Android应用开发过程中,开发者常常面临着重复编写基础组件和处理兼容性问题的挑战,这不仅耗费时间,也降低了开发效率。为了解决这一问题,Tencent推出了QMUI_Android框…

如何使用Python + 百度翻译API 自动大批量免费翻译Excel文件中的外语内容

手里有一个Excel文件,包括了大量的亚马逊德语搜索词(关键词),每个单元格1个,需要翻译为中文。但是文件大小超过了10M,不能使用百度或Google免费的文档功能,如果手工一个个的翻译然后粘贴又太麻烦,于是想到用Python加免费翻译API完成。 一、openpyxl库 用Python编辑处…

【数据结构】排序之冒泡排序和快速排序

简单不先于复杂,而是在复杂之后。 文章目录 1. 交换排序1.1 冒泡排序1.2 快速排序1.3 快速排序优化1.4 快速排序非递归 1. 交换排序 基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换…

day44_jdbc

今日内容 0 复习昨日 1 讲作业 2 数据库连接池(druid) 3 反射 4 改造DBUtil 5 完成CRUD练习 0 复习昨日 1 sql注入 2 预处理语句 3 事务操作 4 DBUtil 1 作业【重要】 利用ORM完成,以下的几个方法非常重要,将来写项目就是这些操作 写项目步骤 搭建环境 创建项目导入依赖工具类数…

《动手学深度学习(PyTorch版)》笔记7.4

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

前端学习第四天

目录 一、复合选择器 1.后代选择器 2.子代选择器 3.并集选择器 4.交集选择器 5.伪类选择器 1.伪类-超链接(拓展) 二、CSS特性 1.继承性 2.层叠性 3.优先级 1.优先级-叠加计算规则 2.emmet写法 三、背景属性 1.背景图 ​编辑2.背景图平铺方…

【知识整理】一文理解系统服务高可用

一、如何理解高可用 1、什么是高可用 高可用性(英语: High Availability,缩写为 HA),指系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。 2、决定可用性的两…

指针进阶(上)

二级指针 二级指针是用来存放一级指针地址。 如何使用和解引用呢&#xff1f; #include <stdio.h>int main() {int a 5;int* p &a;int** p2 &p;**p2 10;printf("%d\n", a);return 0; }这里的解引用使用两颗星号的原因是&#xff1a;一个星号找到…

Python初学者学习记录——python基础综合案例:数据可视化——动态柱状图

一、案例效果 通过pyecharts可以实现数据的动态显示&#xff0c;直观的感受1960~2019年世界各国GDP的变化趋势 二、通过Bar构建基础柱状图 反转x轴和y轴 标签数值在右侧 from pyecharts.charts import Bar from pyecharts.options import LabelOpts# 构建柱状图对象 bar Bar()…

介绍docker

一&#xff1a;介绍docker&#xff1a; Docker 并没有单独的图形界面&#xff0c;它主要通过命令行来进行管理和操作 1、 docker ps&#xff1a;显示正在运行的容器。 docker images&#xff1a;显示本地的镜像。 docker run&#xff1a;创建并启动一个新容器。 docker stop&a…

台灯学生用哪个牌子好?学生用护眼台灯品牌推荐

晚上学习&#xff0c;有台灯肯定比没台灯好。只要是盏合格的、能用的台灯&#xff0c;都能给你一个稳定又亮堂的环境。但是有些不合格的台灯会给眼睛带来伤害&#xff0c;尤其是学习负担比较重的学生。那有哪些台灯是学生用着比较好用的呢&#xff1f; 一、学生使用护眼台灯的…

2-2 动手学深度学习v2-损失函数-笔记

损失函数&#xff0c;用来衡量预测值和真实值之间的区别。是机器学习里面一个非常重要的概念。 三个常用的损失函数 L2 loss、L1 loss、Huber’s Robust loss 均方损失 L2 Loss l ( y , y ′ ) 1 2 ( y − y ′ ) 2 l(y,y^{\prime})\frac{1}{2}(y-y^{\prime})^{2} l(y,y′)21…

Unity3d Shader篇(三)— 片元半兰伯特着色器解析

文章目录 前言一、片元半兰伯特着色器是什么&#xff1f;1. 片元漫反射着色器的工作原理2. 片元半兰伯特着色器的优缺点优点&#xff1a;缺点&#xff1a; 3. 公式 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数…

计算机毕业设计 基于SpringBoot的线上教育培训办公系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

centos7的git使用方法

下载git yum install git git克隆 git clone https...(图片中复制的内容) git提交到远程仓库 git add filename git commit -m "提交日志" git push git首次使用要配置邮箱和用户名 查看提交日志 git log 查看当前提交状态 git status