为方便查阅,此文是原网站文档翻译,如有侵权,请与本人联系。
官网
1)检查、安装c++编译器
推荐编译器:
- microsoft Visua C++:visual studio 2019或者更新版本。
- Mac系统的Xcode 包:通过应用商店免费下载,包含clang++编译器。
其他编译器(比如intel C++,PGI)也可以测试,但是不是官方支持和维护的。虽然很有可能通过其他的工具链构建Chrono,但是需要修改CMake脚本。Microsoft Visual C++编译器包含在Visual Studio 包里,但是他不是默认按照的,在启动时确认安装c++工具链。Visual Studio 2017 在最近版本的Eigen中大量使用内联函数存在问题。因为最新版本的Chrono(特别是由于重新实现的ANCF元素),这可能导致非常长的编译时间,甚至挂断。所以我们推荐使用VS2019或者更新的。
2)下载和安装Eigen库
Chrono现在使用Eigen3满足所有的内部线性代数需要。Chrono要求Eigen3.3.0或者更新版本,但是我们强烈推荐使用最新稳定版本,Eigen 3.4.0.
在Mac上应该通过homebrew安装:brew install eigen
。自MacOS 12 Monterey和新的Apple Silicon(arm46、M1、M2…)硬件以来,Homebrew安装在/opt/Homebrew中。如果Eigen没有被自动发现,可以使用
find /opt/homebrew -name Eigen
搜索文件夹
实际搜索响应
/opt/homebrew/Cellar/eigen/3.4.0_1/include/eigen3/unsupported/Eigen
/opt/homebrew/Cellar/eigen/3.4.0_1/include/eigen3/Eigen
/opt/homebrew/Cellar/eigen/3.4.0_1/include/eigen3/Eigen/Eigen
头文件路径是 /opt/homebrew/Cellar/eigen/3.4.0_1/include/eigen3.
3)下载Irrlicht 库
Chrono::Irrlicht 是一个可选模块,不是chrono建模必须的模块,但是建议使用这个模块,这样才能使用那些依赖Irrlicht作为实时可视化库的chrono例子。
- 下载Irrlicht Engine,最新的测试版本是1.8.4
- 解压到你选定的路径,比如,现在假设解压到
c:/workspace/libraries/irrlicht-1.8.4
.
一些window用户可能会遇到一些问题,当使用shadow lights,如chrono中的一些例子。
在有些情景,我们推荐要么禁用shadows,要么安装Directx sdk。
Irrlicht 1.8.4 要求june 2010 directx sdk。
发布版本1.8.4表现完美,mac系统安装irrlicht最好的方式是
brew install irrlicht
。在macos 12上需要设置IRRLICHT_ROOT为/opt/homebrew.
使用1.8.4版本遇到任何问题,请尝试退回1.8.2发布版。
发布版1.8.3不包含预编译64位dll。
发布版1.8.0使用soft shadows会遇到问题。
4)安装CMAKE
Cmake用于管理构建过程。它为您的特定编译器/IDE创建了一个项目/解决方案,允许用户以最小的工作量编译Chrono源代码。
对于Visual Studio用户:请确保将CMake可执行文件放在Path环境变量中(安装程序可以为您执行此操作)。
对于Xcode用户:CMake.app捆绑包还包含命令行工具,您必须设置适当的链接才能从终端使用它。最好通过自制程序安装纯命令行版本(https://brew.sh)。安装家庭酿造包管理器后,在终端中键入:brew-install-cmake
。
5)安装GIT客户端
在window和MacOs系统上,你可能想下载和安装源代码树。
在MacOs上,你会发现一个应用Bundle在Applications。
6)通过克隆git 库下载项目
在你的电脑上一个文件目录下执行克隆git库下载Chrono SDK,假设你在使用源码树。
-
在菜单栏点击File,然后在源代码树点击Clone/New按钮
-
在 "Source Path / URL"输入
https://github.com/projectchrono/chrono.git
-
在 "Destination Path"输入一个空的路径,比如
c:/workspace/chrono
-
保持Local Folder默认
-
在Advanced Option下拉选框选择master分支
-
点击Clone按钮,源码就被下载到你指定的目录
master
分支包含多种chrono 发布版本和最稳定的代码。如果你对他们正在开发的和下一官方版本发布之前的最新特性感兴趣,在初始克隆之后的任何时候,可以选择develop
分支。
7)运行CMake
开始配置Cmake构建。假设你正在使用图形化界面。
- 在"Where is the source code" 设置路径到你的Chrono文件,在这个文件里你已经创建了git仓库,在例子里使用的是
c:/workspace/chrono
- 在“where to build the binaries”处设置另一个路径,且必须为空,在这里将创建一个visual C++项目,比如,我们使用
c:/workspace/chrono_build.
- 点击**Configure **按钮
- 设置适当的生成器,和适当的平台,如果有64位处理器,尽可能的配置64位项目。在较旧的CMake中,有一个生成器列表,比如“Visual Studio 15 2017”和“Visual Studio 2015 2017 Win64”(然后选择后者),在最新的CMake里,他们是分开的,一个是生成器,另一个是平台。
- 指定Eigen的安装位置。如果没有自动检测到,你需要手动设置CMake变量
EIGEN3_INCLUDE_DIR.比如
,c:/workspace/libraries/eigen-3.3.7
- 在CMake用户界面改变设置,有些设置可以自动检测,有些必须改变:
-
激活推荐可选模块,
ENABLE_MODULE_IRRLICHT
和ENABLE_MODULE_POSTPROCESS
.其他的模块需要额外的设置和依赖。 -
点击Configure.
-
设置
IRRLICHT_ROOT
变量,必须包含Irrlicht的解压路径。 -
再次点击Configure
-
IRRLICHT_LIBRARY
应该被自动填写,如果没有,win用户选择C:/workspace/libraries/irrlicht-1.8.4/lib/Win64-visualStudio/Irrlicht.lib
,然后再点击Configure。
-
记住在更改一些设置之后,必须再次点击Configure,甚至多次,直到所有变量都是白色背景。
-
最后,点击Generate。
-
Visual studio 用户应该保持
CMAKE_CONFIGURATION_TYPES
不变,应该显示Debug;Release;MinSizeRel;RelWithDebInfo,如果不是, 应该点击File>Delete Cache 并重新配置CMake。
构建配置直接从Visual Studio中选择,对于基于Makefile解决方案,反而应该设置CMAKE_CONFIGURATION_TYPES
到不是Debug就是Release 或者MinSizeRel 或是RelWithDebInfo。Makefile不支持多配置类型
Cmake使用 斜杠
/
路径字符,Unix用户已经习惯于这种便利,windows用户应该注意这种反斜杠\
转换成斜杠/
.
在这一点上,你刚刚创建了一个项目,稍后将用于构建Chrono。您可以关闭CMake。
8)编译项目
对于Visual Studio:
- 转到你设定的“where to build the binaries”目录,找到Chrono.sln。
- 双击Chrono.sln,您的Visual Studio方案将会打开。
- 在工具栏,从Solution Configuration下拉菜单选择Release模式。
- 在工具栏,点击Build>Build solution…
全部的Chrono项目和他的例子都会被编译,在bin/Release子文件件产生很多exe和dll文件。 - 重复步骤3和步骤4,但是选择Debug作为配置类型。这将生成带有调试符号的二进制文件:它们将放在bin/Debug子文件夹下。
对于Mac系统/Clang:
- CMake在“构建二进制文件的位置”中指定的目录中生成makefile的层次结构
- 构建Chrono库和例子可执行文件,只需从该目录中的命令行调用
make
。 - 作为可选项,键入
make install
以在CMake配置期间指定的目录中安装Chrono库、数据文件和演示可执行文件。 - CMake可以配置为生成Xcode(
CMake -G Xcode ….
)配置。您通常会在Xcode IDE中使用它。优点是可以调试代码。与在MS Visual Studio中一样,您可以从IDE中选择生成类型。
9)测试例子
转到您设定的“where to build the binaries”文件夹,在这个例子里是C:/workspace/chrono_bulid
,然后转到bin/release
或者(window系统)bin/Debug
。
对于window系统,如果例子使用3D可视化没有开始,这意味着Irrlicht.dll没有发现,你得手动复制Irrlicht从你的irrlicht文件夹
/bin/Win64-visualStudio directory
到chrono_build/bin/Debug
或者chrono_build/bin/Release directory
.
最重要的是,不要搞混64位和32位二进制和静态库。比如您必须链接64位Irrlicht静态库,从MacOS 10.15 Catalina开始,不再支持32位。