实时仿真软件Sofa的安装.docx
《实时仿真软件Sofa的安装.docx》由会员分享,可在线阅读,更多相关《实时仿真软件Sofa的安装.docx(34页珍藏版)》请在冰豆网上搜索。
![实时仿真软件Sofa的安装.docx](https://file1.bdocx.com/fileroot1/2023-2/21/22035369-d2bf-4b7d-952f-974892c6c775/22035369-d2bf-4b7d-952f-974892c6c7751.gif)
实时仿真软件Sofa的安装
目录
1为什么我要写这篇文档1
2什么是Sofa2
2.1重要的提醒2
3笔者的知识储备2
4安装软件前要准备的工作3
4.1笔者的系统3
4.2安装Sofa前必须具备的工具3
4.3什么是SVN4
5Sofa的下载和安装4
5.1登录官网4
5.2进入安装页面5
6下载Sofa7
6.1SofaDashboard7
6.2注意8
6.3下载Sofa分支8
6.4关于SVN的下载11
6.5关于working文件夹13
6.6下载与Qt有关的64位的文件(32位的可以跳过)13
6.7下载依赖库14
6.8生成solution文件14
6.964位的Windows系统能否用32位的安装方法20
7buildSofa21
7.1什么是build21
7.2亘古以来的编写错误21
7.3Build前的准备21
7.4Build全部项目22
7.5生成过程中的注意事项23
7.6运行Sofa24
8假如出现了不能解决的问题怎么办24
1为什么我要写这篇文档
我是在某种命运中邂逅Sofa的,在我参与项目的时候,上头要我们用一款软件Sofa。
我是在毫无准备的情况下接受了这个项目,当时我就觉得这样挺唐突的,作为一个大学生,突然牵涉入这么一个项目中,什么经验,知识,沟通都没有,甚至连自己的团队都还没熟悉,就要做这么一个项目。
我顿时觉得这个制度,这个国度,挺荒诞的。
Sofa这个软件当时我并不知道,但我觉得,我不知道的软件多的是呢,我又不是未学过软件,通常就是看看教程,依葫芦画瓢,SB也能弄个有模有样的出来。
后来我发现并不是这样。
Sofa是一个开源程序框架,官方只提供源代码,并不直接提供程序(这可能是软件并未成熟或者是给使用者更大的自由度),因此安装要比普通软件要复杂得多(但开源程序是免费的,JAVA就是这样,实际上比普通软件要好几百倍),而且这是外国的群体开发的,全英文,因此没有相当勇气的中国人也是不敢贸然地走出下载的第一步的,能看懂就不错了。
(其实是在于你敢不敢尝试看和用心看)
作为一个并不想用英文版软件的人,笔者和大家一样,第一意识都是去卓越、当当、京东那里看一看有没有教程,结果发现只搜到沙发的家居用品,甚至在搜索提示中也没有与软件方面沾边的,我下意识就知道了——没有教程!
之后当然是直接XX或者谷歌直接搜资料了,搜索结果显示大部分的都是家居的沙发,有用的网站只有一个,就是
我看了后稍微懂了一点,也照着博主的意思去官网看了一下,也试了一下,但是还是云里雾里的,因为官网我并不熟悉,很快我就卡住,停滞不前,不知怎么做了。
我留了言,可是博主却一直都没有回应。
于是我问了我的师兄,他说他也不是太懂,但是有人教他怎么安装过,于是我请他演示一下。
但是由于师兄挺忙的,他也没有演示完,我又觉得他的操作跟官网指示的并不完全吻合,于是我后来还是走了。
我觉得要自己摸索一下。
到目前为止,我所能索求到的帮助就这些了,我觉得我还是一片茫然,我看那个博主的操作,步骤很多,一环扣一环的,假如某个环节有问题又没人帮我,如果直接按照师兄的操作,又过于机械,一点原理也不懂,那这样的安装有何用?
我觉得没有人能再帮我了,我从来没有遇到过这么困窘的状况,我总是觉得,为什么搞个项目就这样知识不衔接呢,我什么都不懂,就立马给个那么变态的任务我做(还不知会不会以后嫌我太水把我踢走了呢),而且关键是,上头还不懂!
那就很坑爹了。
因此只能靠自己了,于是走上了自主探索的艰苦道路。
看来废话说太多了。
其实上面的陈述只是其中一个原因,另一个原因是我看到官网上有一个提问题的子网站,里面大部分的提问题的都是中国人,我就很惊讶了,怎么那么多中国人都用Sofa?
(后来我觉得可能是中国人不太乐意看英文吧,而外国总是很readily地看得懂英文,因此外国的就不太会来提问了,除非是一些技术性问题)。
我看到提问的有学生,甚至还有博士,他们都被笼罩在苦恼之中。
于是我觉得有必要写一篇文档来让国人怎么清楚地知道Sofa是怎么安装的。
下面开始介绍笔者安装Sofa的历程。
2什么是Sofa
这里的Sofa是指一款实时仿真软件(我只是大约了解到这是一款医疗仿真软件,至于实时,我只会安装,未用过,因此也不大懂怎么个实时法)。
具体地说,是一个开源程序框架,这从官网http:
//www.sofa-framework.org/的域名可以很清楚地知道,至于什么是框架,我也不太知道,以我贫乏的知识,我觉得这大约是一个设计模式吧,大概先知道这些就可以了,IT知识庞大,要靠不断的学习,学习到以后可能就自然会知道是怎么一回事了。
对于Sofa的信息,读者可以到官网浏览一下,貌似参与开发的群体来头还不小,因为都是一堆英语,笔者也是刚刚接触满版满版的英语的,因此也不太想看,不过我还是建议大家看一看,看熟了对自己的英语水平也有很大的帮助哦。
2.1重要的提醒
Sofa虽然是由一些有来头的群体开发的,可是实际上这款软件目前并不成熟!
(至少在笔者编写该文档时),几乎每天都有人来修补和完善它(更详细的可以看后面章节)。
因此,在发现问题的时候,有时并不一定是用户的问题,而是开发者的问题!
至于怎么解决,后面还会有更详细的叙述。
3笔者的知识储备
笔者不是工程师,只是普通的大学生,知识储备其实很少。
IT知识:
笔者并不是计算机专业的学生,因为C语言是必修课,因此C语言基础是有的(安装并不需要编程,只是你有了C语言的知识能看懂一些操作,和一些文件大概是怎么样的,不至于惊慌。
)
自学了C++的基础(我看的是谭浩强的,可以说是基础中的基础),
和JAVASE。
英语水平:
笔者的英语水平也不算太好,但是如果用心地去看那些英语,勉强地还是能看懂的。
因此,其实大部分读者的水平都不亚于笔者,甚至可以到达鄙视笔者的程度,那就不要因为碰到看上去那么恐怖的软件而望而却步了。
我也曾经因为对软件的陌生,恐惧而不敢迈进第一步,后来我觉得这个情况始终都要面对的,因此也硬杠过去了。
我们都是有知识的人,要相信不要因为一些困难就难倒自己!
4安装软件前要准备的工作
前面又讲了一大堆废话,现在我们开始步入正题。
要安装软件,首先要有安装和运行该软件时必备的其他软件。
4.1笔者的系统
笔者的系统是Windows7,64位的系统。
具备的软件要按照具体的操作系统而定。
4.2安装Sofa前必须具备的工具
MicrosoftVisualStudio(带ServicePack1)
笔者用的是VisualStudio2010ultimate,VS2010不分32位和64位的,网上找到后不用考虑太多直接下就是了。
ServicePack1不管你用的是VS2005,VS2008抑或是VS2010,都是要安装的,这个后面还会再次提及。
注意,据我所知,大部分安装了VS的用户都是没安装ServicePack1的,虽然我师兄貌似没安装过ServicePack1也能正常安装Sofa,但是我还是建议安装一下。
我记得我安装ServicePack1的时间还挺长的,用了45分钟。
网上看到有人安装SP1不成功,我就不知道怎么解决了。
Qt4.8
网址在http:
//qt-project.org/downloads,Qt是什么其实我也不是很懂,读者想深究的话可以买本相关的书来看,这里不再赘述。
注意一点,不要安装Qt5或更高版本!
至少笔者编辑该文档时不要!
因为官网有些地方暗示要用Qt4。
而且笔者尝试过用Qt5,结果不能生成项目(这个后面会有介绍),血一样的教训啊!
或许以后版本升级后可能就能用QT5,但目前不行。
笔者用的是Qtlibraries4.8.4forWindows(VS2010,234MB)(Info)
TortoiseSVN
网址在
注意,32位的要安装32位,64位的要安装64位,否则软件会拒绝安装。
4.3什么是SVN
当时令我感到痛苦的事中,要先安装一连串工具是其中之一,而且当我看到还要安装什么TortoiseSVN的就更加头痛不已。
因为又多了个乱七八糟的不懂的,还是全英文的软件要学,而且京东那里找本书还找不到,又一个痛苦的轮回。
不过,XX能搜到怎么用TortoiseSVN的中文电子书。
当时我觉得看电子书很繁琐,不想看。
后来不得不看了,就打印下来慢慢看,我发现原来SVN很简单的,我就明白了为什么SVN没有相关的图书可找,因为实在太简单了,根本没有出书的必要。
SVN其实就是一个版本控制软件,可以系统地、方便地控制软件的维护、升级、还原等等。
读者可以在XX中搜索TortoiseSVN使用教程[多图超详细]这个文档,自己看一下大概是怎么个用法。
笔者在后面也会介绍TortoiseSVN的必要用法。
5Sofa的下载和安装
5.1登录官网
我们先到Java的官网http:
//www.sofa-framework.org/,可以看到官网的设计还是挺美观的。
琐碎细节就不提那么多了,但我们要先熟悉一下Sofa的界面和标志。
这个就是所谓的IMAGEOFTHEMONTH,大家有一个印象即可。
主页中有几个栏目,分别是Home(主页),About(关于),Documentation(文件材料),Community(群体),Download(下载)。
读者可以据此了解一下关于Sofa的信息,现在可能你还不知道,信息表面上只是一堆平白的文字,但其实是极其有用的东西。
5.2进入安装页面
点击Download,进入关于安装的页面。
看到这一部分,注意到这一句
IfthisisthefirsttimeyouinstallSOFAsincetheRC1,pleasereadcarefullytheinstallationinstructions
这表明,此页面是给老鸟看的,只是可能软件改版了老鸟不知道,给个提示罢了。
因此这一页可以不管,直接点击installationinstructions进入新页面(而且新页面的内容完全涵盖这个页面的下载内容。
)
我们会看到如图所示的页面
6下载Sofa
6.1SofaDashboard
我们先点击SofaDashboard,去选择合适我们系统的版本
我们会进入一个新页面
我们会看到一个表格,这里每一行就是Sofa的一个版本,我们以第一行为例子
左边一栏
Revision:
9603这表明当前的版本是第6903个版本
Author:
bgoyette这表明当前的版本是bgoyette修改升级的
Date:
2013-6-13这表明当前的版本的提交时间,也就是更新时间是2013-6-13
中间一栏
这里是指不同系统配合不同工具来build(这个后面会有解释)Sofa文件的情况,
OK表示文件能够生成成功,而Failed表示文件生成失败。
err,warm代表在building过程中产生错误和警告的个数。
绿色代表警告较少,黄色代表警告较多,警告越多,颜色逐步加深,红色代表生成失败
Build…表示在building。
没有任何信息的格子表明还没有build。
(这里的build是指开发者对新版本的测试,我们下载下来后还要自己再build一次,关于什么是build,后面会有解释)
右边一栏
Commit:
cmake:
revertingAddCompilerDefinitionstoitsoriginalform.这里表明的是修改者修改了什么地方。
这里实际上是SVN的Message栏里的信息,这是十分重要的字段,当版本较多时,可以靠这个讯息知道版本与版本之间的差异。
Files:
9212 (3032 SourceFiles)这里表明该版本有多少个文件。
该版本有9212个文件,其中有3032个源文件。
LinesofCode:
714291这里表明一共有多少行代码。
一共有714291行代码。
如果我们看到自己系统和工具对应的情况是Failed的话,就不要用该版本了,但通常我们用的都是win系统,因此一般不会出现Failed的情况,通常都是OK的,即使该版本还没build完,还是可以先用的。
6.2注意
即使是OK,也只是说明文件是生成成功的,并不能说明Sofa能成功运行,后面会进一步解释。
笔者选择的版本是9592,为什么我会选择这一个版本呢,后面也会有说明。
6.3下载Sofa分支
我们回到Download的页面
这里我们要介绍TortoiseSVN的用法。
安装完TortoiseSVN后,在某个硬盘中新建一个空文件夹,命名为working(这是一个约定俗成的文件名,当然也可以自由命名,但绝不能有空格),如图所示,笔者选择在E盘。
右键点击
SVNCheckout…
会弹出如下图所示的框
我们再看回原网页
我们使用这个URL分支进行下载svn:
//scm.gforge.inria.fr/svn/sofa/trunk/Sofa
把它填入到URLofrepository:
下的文本框中
Checkoutdirectory:
下的文本框中填入working所在的路径
笔者用9592版本,因此笔者在最下面的Revision一栏中,选中Revision,在文本框中填入9592,然后点击OK,Sofa分支就会自动下载了。
当然,如果想直接下载最新的版本,选中默认的Headrevision再点OK就可以了。
下载完后,可看到如图所示的结果
大概有700来M吧,可不要以为Sofa就这么小,完全生成后,Sofa有整整7G多,可谓是软件中的巨无霸。
6.4关于SVN的下载
SVN的下载不同于我们以往的下载,我们以往的下载方式通常用的都是http协议,如果是下载电驴资源的话,还会用ed2k(这个经常下片的应该都知道)。
但是SVN这个,估计大部分人都还没接触过。
所以就会出现一些比较可笑的情况:
就是在下载这一个最初的步骤也卡壳了。
当我们知道TortoiseSVN还是英文软件,而且一时还不能直接找到它用于提取文件(下载)的信息在哪里的时候,往往会一筹莫展,不断徘徊,然后不断地去提问。
这又回到了依赖的劣根性,整天都盼望着要别人回答他,可是偏偏就在最需要别人帮忙的时候,没有一个人回答他,这时应该怎么办呢?
这时应该还是靠自己,要冲破自己那种不断依赖的劣根性。
我在生活中常常就看见这样一些贱骨头,自己不懂常常就依赖别人,看别人怎么做,自己就怎么做,当他一事无成的时候,就问他,为什么不做,他会说,别人都不会,又不教我,我怎么做?
我就觉得唏嘘不已,现在的人根本就是贱到自己往往都不开拓,一味地依赖别人,怎么都要跟别人分一杯羹,这种人有时还是那种极其小聪明的人,他甚至可以把原创的搞垮,而自己却能上位,这种上纲上线的贱骨头做法,往往使我深恶痛绝。
那么,如果我们想升级到高版本,或者还原到低版本应该怎么做呢?
很简单,
只要在working文件夹中,右键>>TortoiseSVN>>Updatetorevision…,然后会弹出如图所示的窗口
选中Revision,在对应的文本框中输入特定的版本号,点击OK,就自动会下载该版本的文件。
因为是在原有的基础上更新的,因此更新会很快完成,这就是SVN的有用之处。
当然我们也可以用回默认的HEADrevision,会升级到最新版本。
查看自己的版本号
假如我们忘了自己的版本号,想查一下,怎么查呢?
可以在working文件夹空白处中右键>>TortoiseSVN>>Showlog,然后会弹出如图所示的窗口
其中粗体字的版本号就是当前的版本号了。
6.5关于working文件夹
该文件夹的文件名不一定就得是working,可以是其他名,working只是一个约定俗成的名称罢了。
working文件夹的路径也不一定是E:
\working,可以是任意路径,但是路径不能有空格,也就是说,working的直接父文件夹和间接父文件夹名都不能有空格。
原网页中的这句
Checkoutthechosenrevisioninapathcontainingnowhitespace(itwillavoidweirdbugs).
交代得很清楚,这是因为如果有空格的话可能会出现某些奇怪异常。
(这个我在学习JAVA的时候,书里面也有提到)
6.6下载与Qt有关的64位的文件(32位的可以跳过)
因为我们用的是Windows的系统,因此我们接下来只看Windows这一部分就可以了,我们先看这里
前半句是说要下载Qt,我们已经下载并安装了,所以不用管它。
但是后面很重要,因为我们在Qt的官网可以看到,Qt4.8.4是不分32位和64位的。
Qt4.8完全支持32位,但是64位并不特别支持。
因此,如果我们要用Qt4.8.4来安装64位的Sofa文件,则必须使用Sofa提供的64位关于Qt的文件。
我们可以点击7z或者zip来下载,7z和zip都是压缩文件,解压后的文件完全一样,但我建议还是用7z的比较好,因为7z比较小(压缩能力强),下载会比较快完成。
笔者下载下来的文件名是qt4.8.3_msvc2010_x64.7z(根据自己的系统下载)
英文中还说,如果用了这个文件的话,会比32位安装时build的时间要短,但笔者build完后没发现比32位的要快多少,可能是笔者电脑的内存比较小吧(只有2G)。
6.7下载依赖库
我们再看回网页,下一段是
ThenyouneedtodownloadtheSofadependencies:
7zorziparchive
这是要我们下载依赖库,依赖库包含着项目,可以说是build的主体,我们要利用它来生成项目。
点击7z或者zip就可以下载了。
笔者下载下来的文件名是sofa-win-dependencies-14-03-2013.7z
什么是依赖库?
说实话,我也只是推测出来的,依赖库中包含着数个项目,每个项目都有一定的依赖关系。
说直白点就是,如果我们要build某个项目,就要先build它依赖的项目。
一个项目依赖的其他项目可以有很多个。
6.8生成solution文件
接下来我们继续看网页
ThispackageworksforMicrosoftVisualStudio2005(x86)SP1,MicrosoftVisualStudio2008(x86/x64)SP1,MicrosoftVisualStudio2010(x86/x64)SP1andshouldworkwithnewerversions.ExtractitinyourSofafolder.
IfyourVisualStudiodoesnothaveitsServicePack1installed(andoneexist),pleaseinstallit.
这里是说,不管是VS那个版本,都要安装ServicePack1,这个我前面已经提到。
我只是想说,这是官网要求要安装的,不是我没事找事要大家安装的,知道吗。
接下来我们要先新建一个主文件夹来放置Sofa
我把它放在了E盘。
然后复制working文件夹中的全部文件
在sofa文件夹中粘贴
粘贴后如图所示
解压Qt64位文件(32位的可以跳过)
解压依赖库
解压完后,我们再看原网页
Copysofa-default.prftosofa-local.prf,editthisoneandcustomizeitifnecessary(forexample,uncommentSOFA_GPU_CUDAtoactivateCUDAsupport)
这里是说,我们要复制sofa-default.prf到当前目录下,并改名为sofa-local.prf,这个文件可能是用于保存用户特定的设置,我们先照着做,如图所示
设置环境变量
我们看到这里:
这里是说,我们如果用自己制作的版本,则需要设置环境变量。
个人认为大部分的初学者应该都不会自己制作新版本的,因此这一步应该可以跳过,而且我看师兄演示的时候,他没有设置环境变量依然可以生成项目,因此这里的话,设不设置环境变量随读者吧。
当然,设置环境变量也很简单,这个学过JAVA的都知道
因为我的Qt的bin,include,lib,和mkspecs文件夹是在D:
\Qt\4.8.4中的,所以我的环境变量这样设置
我用的是用户变量,当然,环境变量也可以(至于用户变量和环境变量有什么区别,这里不再赘述)
接下来要生成solution文件了,看回原网页
NowwehaveeverythingweneedtobuildSofa.
Copysofa-default.prftosofa-local.prf,editthisoneandcustomizeitifnecessary(forexample,uncommentSOFA_GPU_CUDAtoactivateCUDAsupport)
SinceSofaprojectsusethe.proQtformat,wewilllaunchabatchfiletogeneratetheVisualStudioSolutionandProjects.
YouneedtolaunchaWindowsconsole(keyWin+R,typeincmd.exeandpressOK).Aconsolewillappear.
Alwaysinthesameconsole,goinyourSofadirectoryandlaunchthefollowingbatch:
ProjectVC8.battogenerateMicrosoftVisualStudio2005x86projects
ProjectVC9.battogenerateMicrosoftVisualStudio2008x86projects
ProjectVC9_x64.battogenerateMicrosoftVisualStudio2008x64projects
ProjectVC10.battogenerateMicrosoftVisualStudio2010x86projects
ProjectVC10_x64.battogenerateMicrosoftVisualStudio2010x64projects
Donotworryaboutwarningsduringtheprojectsgeneration.Youcannowleavetheconsole.
Asolutionfile(.sln)shouldappearinyourSofafolder.
我们看到第6行,我们要打开Windowsconsole,可以按Win+R组合键,然后弹出这个窗口就是所