欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > SOFA编译-Ubuntu20.04-SOFA22.12

SOFA编译-Ubuntu20.04-SOFA22.12

2025/5/8 10:22:05 来源:https://blog.csdn.net/qq_45286494/article/details/147747646  浏览:    关键词:SOFA编译-Ubuntu20.04-SOFA22.12

一、事前说明
单纯的编译sofa是很简单的,但是想要同时编译SofaPython3则比较难了,我编译了v22.12分支,其他版本sofa的编译也可以参考此篇教程,需注意的是:

1、确定SOFA需要的Python版本,sofa22.12需要的是python3.8,于是我使用了Ubuntu20.04。
例如Ubuntu22.04的系统python3.9。
当然,我在其他人那里看到可以给Ubuntu升级python,或者使用conda环境python,此篇教程中不讨论上面两种情况。//Add//:我验证了使用conda环境编译sofa,是可以实现的,首先conda activate yourEnv,然后cmake-gui运行编译

2、针对Ubuntu20.04,必须要使用网络HAT。不然你会走很多弯路,如何使用HAT本文第三节详细写了。

3、替换你需要的版本号,例如将v22.12更改为vXX.XX,git源码:
3.1 选择一个你想要的地址,新建一个文件夹,针对我而言,我在/home/computer/新建了一个Code文件夹,并在Code文件夹新建了一个sofa文件夹。

3.2 在/home/computer/Code/内建立一个terminal,粘贴下面指令:

git clone -b v22.12 https://github.com/sofa-framework/SofaPython3.git

3.3 在/home/computer/Code/sofa/内建立一个terminal,粘贴下面指令:

git clone -b v22.12 https://github.com/sofa-framework/sofa.git sofa/src

3.4 得到且必须是下面的文件分级效果:

--Code--SofaPython3--sofa--src

如果git失败,多尝试几次即可,这个步骤不需要网络HAT是可以git成功的。

3.5 到/home/computer/Code/sofa/src/applications/plugins/文件夹下手动删除SofaPython3文件夹,且必须删除;因为SOFA没办法通过build-in-tree的方式编译SofaPython3。

二、基础准备
1、sudo安装make、git;这个就不演示了,非常简单。
2、下面的指令无脑复制粘贴安装。
2.1 安装标准编译工具:

sudo apt install build-essential software-properties-common

2.2 gcc,运行以下命令了解哪些 GCC 版本可用于你的ubuntu发行版:

apt-cache search '^gcc-[0-9.]+$'

然后,使用常用命令安装最新的(以 gcc-10 为例):

sudo apt install gcc-10

2.3 注意,我就是使用的clang,不过gcc也可以尽量安装一下,clang不能用的情况下可以替换使用gcc。Clang, GCC 的替代品。它的编译速度大约快两倍!建议安装 Clang 5 的更高版本,了解哪些 Clang 版本可用于你的发行版,运行以下命令:

apt-cache search '^clang-[0-9.]+$'

然后,使用常用命令安装最新的命令(以 clang-12 为例):

sudo apt install clang-12

2.4 CMake:Makefile 生成器:
在编译 SOFA 项目之前,需要 CMake 对其进行配置。请注意,SOFA 至少需要 CMake 3.12。

sudo apt install cmake cmake-gui

2.5 相比于(2.4)的cmake,更推荐安装Ninja:

sudo apt install ninja-build

2.6 安装Qt 5.12.8、Boost 1.71.0、Eigen 3.3.7、Python 3.8.10、pybind11 2.6.2、GLEW 2.1.0、Zlib 1.2.11、libPNG 1.6.37、libJPEG 8c、libTIFF 4.3.0:

sudo apt update
sudo apt install qt5-qmake qtbase5-dev qtchooser qtbase5-dev-tools
sudo apt install libboost-all-dev
sudo apt install libopengl0
sudo apt install libeigen3-dev
sudo apt install python3.8 python3.8-dev python3.8-distutils
sudo apt install pybind11-dev
sudo apt install libglew-dev
sudo apt install zlib1g-dev
sudo apt install libpng-dev
sudo apt install libjpeg-dev
sudo apt install libtiff-dev

2.6 基础python:

sudo apt update
sudo apt install python3.8 python3.8-distutils curl
curl -L https://bootstrap.pypa.io/pip/3.8/get-pip.py -o get-pip38.py
python3.8 get-pip38.py
python3.8 -m pip install --upgrade pip
echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrcpython3.8 -m pip install numpy scipy pybind11
python3.8 -m pip show numpy pybind11 scipy

2.7 安装cache:

sudo apt install ccache

2.8 如果有兴趣,可以访问下面链接安装qt,当然这个版本要对应你要编译的SOFA,这个在sofa 的 github还有官方文档都有介绍,针对sofa22.12而言,就是5.12.8:(注意,这个没有网络HAT的话,在Ubuntu访问会被禁止访问下载网页,可以在windows通过迅雷下载器下载,然后u盘或者向日葵文件传输等方式给弄到Ubuntu中)
https://download.qt.io/archive/qt/5.12/5.12.8/

三、网络HAT
如果你在国内,不得不说这一步是必须的,不然编译是很难成功,编译过程中会访问github去下载SOFA插件的源码,除非你将插件的源码自己git下来,然后放到sofa文件夹外,例如第一步的SofaPython3

言归正传:
1、https://archive.org/download/Software_for_windows_pkg下载Software.for.Windows-0.20.39-x64-linux.tar.gz

2、新建终端并解压

tar zxvf Software.for.Windows-0.20.39-x64-linux.tar.gz

3、进入解压文件,新建一个terminal
在这里插入图片描述
4、在terminal中键入下面指令,会将software启动起来,但是可能是红色报错的状态,不是我下面图片中的样子,不用担心:

./cfw

在这里插入图片描述
5、粘贴你的URL,下载:
在这里插入图片描述
6、然后粘贴你的URL链接到火狐浏览器,会下载一个文件,使用文本编辑器打开,然后CTRL+A全选,并CTRL+C复制

7、在home/computer/文件夹下使用CTRL+H快捷键,使得隐藏的.config文件夹显示出来
找到./clash/config.yaml文件,使用文本编辑器打开
使用CTRL+A全选,并CTRL+V粘贴,保存后关闭

8、./cfw重启clash就可以正常使用了

9、手动配置全局HAT,不配置有些网页无法访问
打开 设置>网络>网络HAT,改为手动,并设置回环地址,端口和clash保持相同

在这里插入图片描述

四、开始编译
1、打开home/computer/Code/sofa/文件夹

mkdir build

文件夹分级应该是,这种叫Out-Tree编译:

--Code--SofaPython3--sofa--src--build

2、分别键入下面两行指令:

cd buildcmake-gui ../src/

3、点击Configure,选择Ninja,然后手动指定C和C++编译器,前文讲到了本文使用clang,也可以使用gcc和g++;
可以看出来,使用了HAT,可以非常顺利的配置结束:(注:不使用HAT,会停止到Adding library Sofa.GUI.Qt, 如果你没有使用HAT你会明白我是什么意思,但如果运气好的话(WALL漏了)存在配置通过的可能)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、键入python搜索,找到SOFA_FETCH_SOFAPYTHON3,勾选为True,点击Configure
在这里插入图片描述
然后点击Generate

在这里插入图片描述
generate之后的样子如下:
在这里插入图片描述
5、编译,关闭cmake-gui(叉号关闭)后,在terminal依次键入,在build文件夹会多出一个install文件夹,这就是完全编译SOFA:

ninja
ninja install

在这里插入图片描述

五、最后验证
打开/home/computer/Code/sofa/build/文件夹,新建一个terminal,键入下面指令:

pythonimport Sofa

只要如最后一张图不报错即成功!!!
Congratulations!
在这里插入图片描述

六、写在最后

如果不在意版本可以直接使用下面指令安装,直接使用SOFA

Installing SOFA latest release from conda
Quick install (recommanded)
Full SOFA core install with SofaPython3 plugin

conda install sofa-app sofa-python3 --channel sofa-framework --channel conda-forge

Or

Full SOFA core install with all packaged plugins

conda install sofa-app sofa-python3 sofa-stlib sofa-modelorderreduction sofa-beamadapter sofa-softrobots sofa-cosserat --channel sofa-framework --channel conda-forge

Testing install
Run SOFA application with its GUI

runSofa -l Sofa.GUI.Qt -g qt
Run SOFA application with its GUI and SofaPython3 plugin

runSofa -l Sofa.GUI.Qt -g qt -l SofaPython3
Please open an issue to report any problem.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词