【安装记录】Chrono Engine安装记录

2024-02-02 16:20
文章标签 安装 记录 engine chrono

本文主要是介绍【安装记录】Chrono Engine安装记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

官方安装教程

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

这篇关于【安装记录】Chrono Engine安装记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/671290

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py