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

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

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

相关文章

6款超好用的IDEA插件,开发必备!

今天给大家介绍几款开发必备的IDEA插件: JRebel 热部署插件,让你在修改完代码后,不用再重新启动,很实用!但是,不是免费的,需要大家继续发挥下自己的聪明才智才能happy的使用 Json Parser 厌倦…

Vivado Tri-MAC IP端口说明

Trri-mac Ethernet IP端口详细说明 序号 Signal Name Direction Description 备注 Clock,Reset Definition 1 gtx_clk I MAC IP全局时钟输入,125MHz。使用时输入125MHz全局时钟。 2 refclk I MAC IP参考时钟输入,200MHz,该时钟用…

每周AI新闻(2024年第5周)ChatGPT等多应用登陆 Vision Pro | 字节Coze国内版上线等

我是陌小北,一个正在研究硅基生命的、有趣儿的碳基生命。每周日20:00,准时解读每周AI大事件。 大厂动向 【1】ChatGPT、钉钉、Firefly AI 登陆 Vision Pro OpenAI发布了新的ChatGPT App,允许Apple Vision Pro用户与GPT-4 Turbo模型进行自然…

Abp 从空白的WebApplication中添加EntityFrameworkCore生成数据库

书接上文:Abp 从空白WebApplication开始 开发环境:.NET6、Volo.Abp 数据库:Sqlite 说明:纯属个人强行入门。我个人觉得按照官网的操作不舒服,所以自己研究着来,请读者根据自己的需要进行参考。我能保证的…

Ubuntu+GPU搭建Stable-Diffusion教程

【前序】已经安装anaconda 1.git拉取项目到本地 执行git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git 进入项目目录下 cd stable-diffusion-webui/ 2. 安装对应Python依赖包 首先安装pytorch和torchvision,若是GPU环境的用户需要安装与cu…

2024年最新幻兽帕鲁服务器搭建教程

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

Day59 单调栈part02 503. 下一个更大元素 II 42. 接雨水

Day59 单调栈part02 503. 下一个更大元素 II 42. 接雨水 503. 下一个更大元素 II class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {vector<int> result(nums.size(),-1); stack<int> st;st.push(0);for(int i 1;…

深度解析源码,Spring 如何使用三级缓存解决循环依赖

目录 一. 前言 二. 基础知识 2.1. 什么是循环依赖&#xff1f; 2.2. 三级缓存 2.3. 原理执行流程 三. 源码解读 3.1. 代码入口 3.2. 第一层 3.3. 第二层 3.4. 第三层 3.5. 返回第二层 3.6. 返回第一层 四. 原理深度解读 4.1. 什么要有三级缓存&#xff1f; 4.2.…

【HarmonyOS 4.0 应用开发实战】ArkTS 快速入门

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

python中[[]] * (n)和[[] for _ in range(n)]的区别

1、现象 刷leetcode207的时候碰到一个坑&#xff0c;用[[]] * (n)初始化二维数组&#xff0c;逻辑是正确的&#xff0c;但是结果始终不对。 2、原因 最后定位是初始化语句使用错误导致的&#xff0c;我使用的是[[]] * (n)&#xff0c;应该使用[[] for _ in range(n)] 3、解…

Stable Diffusion 模型下载:ReV Animated

模型介绍 该模型能够创建 2.5D 类图像生成。此模型是检查点合并&#xff0c;这意味着它是其他模型的产物&#xff0c;以创建从原始模型派生的产品。 条目内容类型大模型基础模型SD 1.5来源CIVITAI作者s6yx文件名称revAnimated_v122EOL.safetensors文件大小5.13GB 生成案例 …

redis数据库设置对象的过期时间,到期后自动删除该条数据

redis数据库设置对象的过期时间,到期后自动删除该条数据&#xff01;过期时间的事情经常发生。比如大家领到了一些购物券。这张购物券有一个过期时间。必须在某节点之前&#xff08;某年某月末日&#xff09;之前&#xff0c;使用掉&#xff0c;否则该券就会过期&#xff0c;无…

Ruby详解及安装流程

文章目录 一、Ruby详解二、Ruby安装流程三、Ruby案例四、Ruby常见问题五、Ruby优缺点六、热门文章 一、Ruby详解 Ruby是一种高级编程语言&#xff0c;具有简单易学、灵活多变、优雅美丽的语法特点。它是一种面向对象的编程语言&#xff0c;具有动态类型和解释型语言的特性。在…

Aigtek高压放大器用途是什么呢

高压放大器在电子领域中扮演着至关重要的角色&#xff0c;其主要作用是将低电压信号放大到更高的电压水平。这种类型的放大器广泛用于各种应用中&#xff0c;以下是高压放大器的用途以及其关键作用的详细介绍。 1、科学研究和实验室应用&#xff1a; 高压放大器在科学研究和实验…

【Linux】Linux权限

Hello everybody!在介绍完Linux操作系统常用的基本指令后&#xff0c;咱们就要开始权限的讲解了。如果没有看过我之前文章的宝子们可以去看看呦&#xff01;有比较系统的指令讲解&#xff01; 回到正题&#xff0c;关于权限&#xff0c;实际上没有大家想象中的那么神秘&#x…

解决问题(Tensorflow框架):ImportError: cannot import name ‘merge‘ from ‘keras.layers‘

看了一圈解决方案&#xff0c;没有找到跟我这个相关的 这就是版本兼容性问题 说句最简单的&#xff0c;针对我这个问题 直接把merge删除点就完事了&#xff0c;因为新版的tensorflow框架这个里面不包含merge&#xff0c;所以直接删掉问题就解决了

Linux进程信号处理:深入理解与应用(2​​)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;its 6pm but I miss u already.—bbbluelee 0:01━━━━━━️&#x1f49f;──────── 3:18 &#x1f504; ◀️…

Android 无操作之后定时退出

android定时器监用户听对页面无操作5分钟退出登录实现 - 简书 private long advertisingTime 600000;///定时结束退出登录10分(分钟)600000毫秒public CountDownTimer countDownTimer;Overrideprotected void onResume() {super.onResume();//启动定时if (isTimedExitApp()) …

ElementUI Form:Form表单

ElementUI安装与使用指南 Form表单 点击下载learnelementuispringboot项目源码 效果图 el-form.vue&#xff08;Form表单&#xff09;页面效果图 项目里 el-form.vue代码 <script> export default {name: el_form,data() {var checkAge (rule, value, callback…

计算机设计大赛 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的数学公式识别算法实现 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学…