1、实时仿真软件Sofa的安装目录1为什么我要写这篇文档 12什么是Sofa 22.1重要的提醒 23笔者的知识储备 24安装软件前要准备的工作 34.1笔者的系统 34.2安装Sofa前必须具备的工具 34.3什么是SVN 45 Sofa的下载和安装 45.1登录官网 45.2进入安装页面 56下载Sofa 76.1 Sofa Dashboard 76.2注意 86.3下载Sofa分支 86.4关于SVN的下载 116.5关于working文件夹 136.6下载与Qt有关的64位的文件(32位的可以跳过) 136.7下载依赖库 146.8生成solution文件 146.9 64位的Window
2、s系统能否用32位的安装方法 207 build Sofa 217.1什么是build 217.2亘古以来的编写错误 217.3 Build前的准备 217.4 Build全部项目 227.5生成过程中的注意事项 237.6运行Sofa 248 假如出现了不能解决的问题怎么办 241为什么我要写这篇文档我是在某种命运中邂逅Sofa的,在我参与项目的时候,上头要我们用一款软件Sofa。我是在毫无准备的情况下接受了这个项目,当时我就觉得这样挺唐突的,作为一个大学生,突然牵涉入这么一个项目中,什么经验,知识,沟通都没有,甚至连自己的团队都还没熟悉,就要做这么一个项目。我顿时觉得这个制度,这个国度,挺
3、荒诞的。Sofa这个软件当时我并不知道,但我觉得,我不知道的软件多的是呢,我又不是未学过软件,通常就是看看教程,依葫芦画瓢,SB也能弄个有模有样的出来。后来我发现并不是这样。Sofa是一个开源程序框架,官方只提供源代码,并不直接提供程序(这可能是软件并未成熟或者是给使用者更大的自由度),因此安装要比普通软件要复杂得多(但开源程序是免费的,JAVA就是这样,实际上比普通软件要好几百倍),而且这是外国的群体开发的,全英文,因此没有相当勇气的中国人也是不敢贸然地走出下载的第一步的,能看懂就不错了。(其实是在于你敢不敢尝试看和用心看)作为一个并不想用英文版软件的人,笔者和大家一样,第一意识都是去卓越、
4、当当、京东那里看一看有没有教程,结果发现只搜到沙发的家居用品,甚至在搜索提示中也没有与软件方面沾边的,我下意识就知道了没有教程!之后当然是直接XX或者谷歌直接搜资料了,搜索结果显示大部分的都是家居的沙发,有用的网站只有一个,就是我看了后稍微懂了一点,也照着博主的意思去官网看了一下,也试了一下,但是还是云里雾里的,因为官网我并不熟悉,很快我就卡住,停滞不前,不知怎么做了。我留了言,可是博主却一直都没有回应。于是我问了我的师兄,他说他也不是太懂,但是有人教他怎么安装过,于是我请他演示一下。但是由于师兄挺忙的,他也没有演示完,我又觉得他的操作跟官网指示的并不完全吻合,于是我后来还是走了。我觉得要自己
5、摸索一下。到目前为止,我所能索求到的帮助就这些了,我觉得我还是一片茫然,我看那个博主的操作,步骤很多,一环扣一环的,假如某个环节有问题又没人帮我,如果直接按照师兄的操作,又过于机械,一点原理也不懂,那这样的安装有何用?我觉得没有人能再帮我了,我从来没有遇到过这么困窘的状况,我总是觉得,为什么搞个项目就这样知识不衔接呢,我什么都不懂,就立马给个那么变态的任务我做(还不知会不会以后嫌我太水把我踢走了呢),而且关键是,上头还不懂!那就很坑爹了。因此只能靠自己了,于是走上了自主探索的艰苦道路。看来废话说太多了。其实上面的陈述只是其中一个原因,另一个原因是我看到官网上有一个提问题的子网站,里面大部分的提
6、问题的都是中国人,我就很惊讶了,怎么那么多中国人都用Sofa?(后来我觉得可能是中国人不太乐意看英文吧,而外国总是很readily地看得懂英文,因此外国的就不太会来提问了,除非是一些技术性问题)。我看到提问的有学生,甚至还有博士,他们都被笼罩在苦恼之中。于是我觉得有必要写一篇文档来让国人怎么清楚地知道Sofa是怎么安装的。下面开始介绍笔者安装Sofa的历程。2什么是Sofa这里的Sofa是指一款实时仿真软件(我只是大约了解到这是一款医疗仿真软件,至于实时,我只会安装,未用过,因此也不大懂怎么个实时法)。具体地说,是一个开源程序框架,这从官网http:/www.sofa-framework.or
7、g/的域名可以很清楚地知道,至于什么是框架,我也不太知道,以我贫乏的知识,我觉得这大约是一个设计模式吧,大概先知道这些就可以了,IT知识庞大,要靠不断的学习,学习到以后可能就自然会知道是怎么一回事了。对于Sofa的信息,读者可以到官网浏览一下,貌似参与开发的群体来头还不小,因为都是一堆英语,笔者也是刚刚接触满版满版的英语的,因此也不太想看,不过我还是建议大家看一看,看熟了对自己的英语水平也有很大的帮助哦。2.1重要的提醒Sofa虽然是由一些有来头的群体开发的,可是实际上这款软件目前并不成熟!(至少在笔者编写该文档时),几乎每天都有人来修补和完善它(更详细的可以看后面章节)。因此,在发现问题的时
8、候,有时并不一定是用户的问题,而是开发者的问题!至于怎么解决,后面还会有更详细的叙述。3笔者的知识储备笔者不是工程师,只是普通的大学生,知识储备其实很少。IT知识:笔者并不是计算机专业的学生,因为C语言是必修课,因此C语言基础是有的(安装并不需要编程,只是你有了C语言的知识能看懂一些操作,和一些文件大概是怎么样的,不至于惊慌。)自学了C+的基础(我看的是谭浩强的,可以说是基础中的基础),和JAVA SE。英语水平:笔者的英语水平也不算太好,但是如果用心地去看那些英语,勉强地还是能看懂的。因此,其实大部分读者的水平都不亚于笔者,甚至可以到达鄙视笔者的程度,那就不要因为碰到看上去那么恐怖的软件而望
9、而却步了。我也曾经因为对软件的陌生,恐惧而不敢迈进第一步,后来我觉得这个情况始终都要面对的,因此也硬杠过去了。我们都是有知识的人,要相信不要因为一些困难就难倒自己!4安装软件前要准备的工作前面又讲了一大堆废话,现在我们开始步入正题。要安装软件,首先要有安装和运行该软件时必备的其他软件。4.1笔者的系统笔者的系统是Windows 7,64位的系统。具备的软件要按照具体的操作系统而定。4.2安装Sofa前必须具备的工具Microsoft Visual Studio(带Service Pack 1)笔者用的是Visual Studio2010ultimate,VS2010不分32位和64位的,网上找
10、到后不用考虑太多直接下就是了。Service Pack 1不管你用的是VS2005,VS2008抑或是VS2010,都是要安装的,这个后面还会再次提及。注意,据我所知,大部分安装了VS的用户都是没安装Service Pack 1的,虽然我师兄貌似没安装过Service Pack 1也能正常安装Sofa,但是我还是建议安装一下。我记得我安装Service Pack 1的时间还挺长的,用了45分钟。网上看到有人安装SP1不成功,我就不知道怎么解决了。Qt4.8网址在http:/qt-project.org/downloads,Qt是什么其实我也不是很懂,读者想深究的话可以买本相关的书来看,这里不再
11、赘述。注意一点,不要安装Qt5或更高版本!至少笔者编辑该文档时不要!因为官网有些地方暗示要用Qt4。而且笔者尝试过用Qt5,结果不能生成项目(这个后面会有介绍),血一样的教训啊!或许以后版本升级后可能就能用QT5,但目前不行。笔者用的是Qt libraries 4.8.4 for Windows (VS 2010, 234 MB) (Info)TortoiseSVN网址在注意,32位的要安装32位,64位的要安装64位,否则软件会拒绝安装。4.3什么是SVN当时令我感到痛苦的事中,要先安装一连串工具是其中之一,而且当我看到还要安装什么TortoiseSVN的就更加头痛不已。因为又多了个乱七八糟
12、的不懂的,还是全英文的软件要学,而且京东那里找本书还找不到,又一个痛苦的轮回。不过,XX能搜到怎么用TortoiseSVN的中文电子书。当时我觉得看电子书很繁琐,不想看。后来不得不看了,就打印下来慢慢看,我发现原来SVN很简单的,我就明白了为什么SVN没有相关的图书可找,因为实在太简单了,根本没有出书的必要。SVN其实就是一个版本控制软件,可以系统地、方便地控制软件的维护、升级、还原等等。读者可以在XX中搜索TortoiseSVN使用教程多图超详细 这个文档,自己看一下大概是怎么个用法。笔者在后面也会介绍TortoiseSVN的必要用法。5 Sofa的下载和安装5.1登录官网我们先到Java的
13、官网http:/www.sofa-framework.org/,可以看到官网的设计还是挺美观的。琐碎细节就不提那么多了,但我们要先熟悉一下Sofa的界面和标志。这个就是所谓的IMAGE OF THE MONTH,大家有一个印象即可。主页中有几个栏目,分别是Home(主页),About(关于),Documentation(文件材料),Community(群体),Download(下载)。读者可以据此了解一下关于Sofa的信息,现在可能你还不知道,信息表面上只是一堆平白的文字,但其实是极其有用的东西。5.2进入安装页面点击Download,进入关于安装的页面。看到这一部分,注意到这一句If thi
14、s is the first time you install SOFA since the RC1, please read carefully the installation instructions这表明,此页面是给老鸟看的,只是可能软件改版了老鸟不知道,给个提示罢了。因此这一页可以不管,直接点击installation instructions进入新页面(而且新页面的内容完全涵盖这个页面的下载内容。)我们会看到如图所示的页面6下载Sofa6.1 Sofa Dashboard我们先点击Sofa Dashboard,去选择合适我们系统的版本我们会进入一个新页面我们会看到一个表格,这里每一
15、行就是Sofa的一个版本,我们以第一行为例子左边一栏Revision:9603 这表明当前的版本是第6903个版本Author:bgoyette 这表明当前的版本是bgoyette修改升级的Date:2013-6-13 这表明当前的版本的提交时间,也就是更新时间是2013-6-13中间一栏这里是指不同系统配合不同工具来build(这个后面会有解释)Sofa文件的情况,OK表示文件能够生成成功,而Failed表示文件生成失败。err,warm代表在building过程中产生错误和警告的个数。绿色代表警告较少,黄色代表警告较多,警告越多,颜色逐步加深,红色代表生成失败Build表示在buildin
16、g。没有任何信息的格子表明还没有build。(这里的build是指开发者对新版本的测试,我们下载下来后还要自己再build一次,关于什么是build,后面会有解释)右边一栏Commit: cmake: revertingAddCompilerDefinitions to its original form.这里表明的是修改者修改了什么地方。这里实际上是SVN的Message栏里的信息,这是十分重要的字段,当版本较多时,可以靠这个讯息知道版本与版本之间的差异。Files:9212(3032Source Files)这里表明该版本有多少个文件。该版本有9212个文件,其中有3032个源文件。Lin
17、es of Code: 714291这里表明一共有多少行代码。一共有714291行代码。如果我们看到自己系统和工具对应的情况是Failed的话,就不要用该版本了,但通常我们用的都是win系统,因此一般不会出现Failed的情况,通常都是OK的,即使该版本还没build完,还是可以先用的。6.2注意即使是OK,也只是说明文件是生成成功的,并不能说明Sofa能成功运行,后面会进一步解释。笔者选择的版本是9592,为什么我会选择这一个版本呢,后面也会有说明。6.3下载Sofa分支我们回到Download的页面这里我们要介绍TortoiseSVN的用法。安装完TortoiseSVN后,在某个硬盘中新建
18、一个空文件夹,命名为working(这是一个约定俗成的文件名,当然也可以自由命名,但绝不能有空格),如图所示,笔者选择在E盘。右键点击SVN Checkout会弹出如下图所示的框我们再看回原网页我们使用这个URL分支进行下载svn:/scm.gforge.inria.fr/svn/sofa/trunk/Sofa把它填入到URL of repository:下的文本框中Checkout directory:下的文本框中填入working所在的路径笔者用9592版本,因此笔者在最下面的Revision一栏中,选中Revision,在文本框中填入9592,然后点击OK,Sofa分支就会自动下载了。当
19、然,如果想直接下载最新的版本,选中默认的Head revision再点OK就可以了。下载完后,可看到如图所示的结果大概有700来M吧,可不要以为Sofa就这么小,完全生成后,Sofa有整整7G多,可谓是软件中的巨无霸。6.4关于SVN的下载SVN的下载不同于我们以往的下载,我们以往的下载方式通常用的都是http协议,如果是下载电驴资源的话,还会用ed2k(这个经常下片的应该都知道)。但是SVN这个,估计大部分人都还没接触过。所以就会出现一些比较可笑的情况:就是在下载这一个最初的步骤也卡壳了。当我们知道TortoiseSVN还是英文软件,而且一时还不能直接找到它用于提取文件(下载)的信息在哪里的
20、时候,往往会一筹莫展,不断徘徊,然后不断地去提问。这又回到了依赖的劣根性,整天都盼望着要别人回答他,可是偏偏就在最需要别人帮忙的时候,没有一个人回答他,这时应该怎么办呢?这时应该还是靠自己,要冲破自己那种不断依赖的劣根性。我在生活中常常就看见这样一些贱骨头,自己不懂常常就依赖别人,看别人怎么做,自己就怎么做,当他一事无成的时候,就问他,为什么不做,他会说,别人都不会,又不教我,我怎么做?我就觉得唏嘘不已,现在的人根本就是贱到自己往往都不开拓,一味地依赖别人,怎么都要跟别人分一杯羹,这种人有时还是那种极其小聪明的人,他甚至可以把原创的搞垮,而自己却能上位,这种上纲上线的贱骨头做法,往往使我深恶痛
21、绝。那么,如果我们想升级到高版本,或者还原到低版本应该怎么做呢?很简单,只要在working文件夹中,右键TortoiseSVNUpdate to revision,然后会弹出如图所示的窗口选中Revision,在对应的文本框中输入特定的版本号,点击OK,就自动会下载该版本的文件。因为是在原有的基础上更新的,因此更新会很快完成,这就是SVN的有用之处。当然我们也可以用回默认的HEAD revision,会升级到最新版本。查看自己的版本号假如我们忘了自己的版本号,想查一下,怎么查呢?可以在working文件夹空白处中右键TortoiseSVNShow log,然后会弹出如图所示的窗口其中粗体字的
22、版本号就是当前的版本号了。6.5关于working文件夹该文件夹的文件名不一定就得是working,可以是其他名,working只是一个约定俗成的名称罢了。working文件夹的路径也不一定是E:working,可以是任意路径,但是路径不能有空格,也就是说,working的直接父文件夹和间接父文件夹名都不能有空格。原网页中的这句Checkout the chosen revision in a path containing no white space (it will avoid weird bugs).交代得很清楚,这是因为如果有空格的话可能会出现某些奇怪异常。(这个我在学习JAVA的时
23、候,书里面也有提到)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比较小(压缩
24、能力强),下载会比较快完成。笔者下载下来的文件名是qt4.8.3_msvc2010_x64.7z(根据自己的系统下载)英文中还说,如果用了这个文件的话,会比32位安装时build的时间要短,但笔者build完后没发现比32位的要快多少,可能是笔者电脑的内存比较小吧(只有2G)。6.7下载依赖库我们再看回网页,下一段是Then you need to download the Sofa dependencies : 7z or zip archive这是要我们下载依赖库,依赖库包含着项目,可以说是build的主体,我们要利用它来生成项目。点击7z或者zip就可以下载了。笔者下载下来的文件名是so
25、fa-win-dependencies-14-03-2013.7z什么是依赖库?说实话,我也只是推测出来的,依赖库中包含着数个项目,每个项目都有一定的依赖关系。说直白点就是,如果我们要build某个项目,就要先build它依赖的项目。一个项目依赖的其他项目可以有很多个。6.8生成solution文件接下来我们继续看网页This package works for Microsoft Visual Studio 2005 (x86) SP1, Microsoft Visual Studio 2008 (x86 / x64) SP1, Microsoft Visual Studio 2010 (x
26、86 / x64) SP1 and should work with newer versions. Extract it in your Sofa folder. If your Visual Studio does not have its Service Pack 1 installed (and one exist), please install it.这里是说,不管是VS那个版本,都要安装Service Pack 1,这个我前面已经提到。我只是想说,这是官网要求要安装的,不是我没事找事要大家安装的,知道吗。接下来我们要先新建一个主文件夹来放置Sofa我把它放在了E盘。然后复制wor
27、king文件夹中的全部文件在sofa文件夹中粘贴粘贴后如图所示解压Qt64位文件(32位的可以跳过)解压依赖库解压完后,我们再看原网页Copy sofa-default.prf to sofa-local.prf, edit this one and customize it if necessary (for example, uncomment SOFA_GPU_CUDA to activate CUDA support)这里是说,我们要复制sofa-default.prf到当前目录下,并改名为sofa-local.prf,这个文件可能是用于保存用户特定的设置,我们先照着做,如图所示设置环
28、境变量我们看到这里:这里是说,我们如果用自己制作的版本,则需要设置环境变量。个人认为大部分的初学者应该都不会自己制作新版本的,因此这一步应该可以跳过,而且我看师兄演示的时候,他没有设置环境变量依然可以生成项目,因此这里的话,设不设置环境变量随读者吧。当然,设置环境变量也很简单,这个学过JAVA的都知道因为我的Qt的bin,include,lib,和mkspecs文件夹是在D:Qt4.8.4中的,所以我的环境变量这样设置我用的是用户变量,当然,环境变量也可以(至于用户变量和环境变量有什么区别,这里不再赘述)接下来要生成solution文件了,看回原网页Now we have everything
29、 we need to build Sofa. Copy sofa-default.prf to sofa-local.prf, edit this one and customize it if necessary (for example, uncomment SOFA_GPU_CUDA to activate CUDA support) Since Sofa projects use the .pro Qt format, we will launch a batch file to generate the Visual Studio Solution and Projects. Yo
30、u need to launch a Windows console (key Win+R, type in cmd.exe and press OK). A console will appear.Always in the same console, go in your Sofa directory and launch the following batch :Project VC8.bat to generate Microsoft Visual Studio 2005 x86 projectsProject VC9.bat to generate Microsoft Visual
31、Studio 2008 x86 projectsProject VC9_x64.bat to generate Microsoft Visual Studio 2008 x64 projectsProject VC10.bat to generate Microsoft Visual Studio 2010 x86 projectsProject VC10_x64.bat to generate Microsoft Visual Studio 2010 x64 projectsDo not worry about warnings during the projects generation. You can now leave the console. A solution file (.sln) should appear in your Sofa folder.我们看到第6行,我们要打开Windows console,可以按Win+R组合键,然后弹出这个窗口就是所
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1