IMSTK在Windows下的编译安装

IMSTK在Windows下的编译安装

   IMSKT:Interactive Medical Simulation Toolkit

a free & open source software toolkit written in C++ that aids rapid prototyping of interactive multi-modal surgical simulations

本文将在Windows系统下编译该框架: 官方的十个字指导过程????

零、工作环境

工具 版本
操作系统 windows 10
IMSTK gitlab/master
Git 2.28
VTK 9.0
Cmake 3.18.2
Visual studio 2017_community

一、准备

1.1 Git 以及 SSH key

  • Git
    用于从gitlab下载源码及依赖包,自己找教程安装就行

  • SSH key
    SSH key提供一种于Gitlab通信的方式
  • 生成新的SSH key
    1.在 CMD 命令行中输入 ssh -****** -t rsa -C "你的邮箱@xxx.com"
    2.输入后会提示要求输出 passphrase 这里直接回车用空代替就行
    3.完成后在C:\Users\你的用户名\.ssh目录下就会出现一个 id_rsa.pub 的文件 这里面就是公钥了

注: -t 用来指示要生成的**类型, 这里用了rsa
-C用来标识**,这里输入了自己的邮箱,其他也行, 我这边直接用了Github的账号邮箱,登陆Gitlab的时候GitHub账户登陆就行

  • 用记事本打开 id_rsa.pub 文件 复制里面的内容 登陆 然后复制到**那里
    IMSTK在Windows下的编译安装

1.2 下载IMSTK源码

  • 在合适目录下打开GItBash或powershell输入:

git clone [email protected]:iMSTK/iMSTK.git

完事之后就得到源码了,接下来就是编译

二、编译

2.1 CMAKE

  • src 目录 build 目录选好 , Configure

-选项:

选项 功能及选择
iMSTK_BUILD_EXAMPLES 可以先编译完不带exa的回头再编译例子
iMSTK_BUILD_TESTING 个人认为类似VTK的testing 大可不必编译
USE_SYSTEM_VTK 使用你自己编译的VTK(我这边这条路没成功)  如果勾选,需要指定VTK_DIR 用来找 vtk-config.cmake
iMSTK_USE_OpenHaptics 力反馈,目前我还没编译该项
  • Configure done
  • Generate done
  • Open Project

2.2 VS

  • Release ×64 直接build solution

  • 全部成功,没编译例子的话再去CMAKE一下回来生成一下IMSTK这个工程就行了

  • 完事后在D:\Tools\iMSTK\build\install\bin目录下会出现一大堆dll以及编译生成的example可执行文件

例:Example-CD-ManualCDWithOctree.exe

IMSTK在Windows下的编译安装



  • **报错解决指南:**按照我上面的配置及config选项,报错都是下载问题

写在前面:手动并不会加速下载,好处是你可以在下载失败后一直下载直至成功。

1.下载External中的各种依赖库出错:

  查看控制台找到下载出错的文件的下载地址,手动下好放到所需目录中

2.SHA相关类型的文件下载出错:

  按照1方式下好,然后注意,取下载地址中的SHA编号,重命名下好的文件,此时不是放到要下载的地方了,而是要放到D:\Tools\iMSTK\build\Innerbuild\Objects\SHA512这个目录下。该目录下必须有该文件才会检查通过,否则就会继续重复下载。

3.编译过程中卡住不动,控制台没任何输出:

   大概率是在从gitlab仓库获取VTK源码资源,git过程中不显示下载进度,所以控制台无输出,耐心等待下载完成或连接失败,此时你并不能终止solution build 也关不掉 VS,原因就是后台进程中VS还在调用Git进程,你可以都杀死这些进程强行关闭。
注意:此过程不能通过方式1下载,因为它下好之后会生成一个避免重复下载的邮戳D:\Tools\iMSTK\build\External\VTK\stamp\VTK-gitclone-lastrun.txe手动从仓库下好只有源码;
当然 这个邮戳的东西和同目录下 VTK-gitinfo.txt文件的内容是完全相同的,如果你实在是编译的时候下不下来,那就考虑手动下载下来然后自己放个这个邮戳试着骗一下编译器。

4.其他情况下出错

  • 4.1 下载源码时间

博主同样操作过程在十天前并不能编译成功,于2020/09/16重新下载了源码进行然后成功
即:master分支在不断更新中,部分源码以及依赖包发生了改变,这个酌情自己考虑出错问题
但是其他branch下文档编译说明中也是给的下载master分支的,没仔细去找是不是有个分支是稳定版?

  • 4.2 勾选USE_SYSTEM_VTK

勾选该选项理论上意味着可以用自己之前电脑编译过的VTK环境,只需要给iMSTK VTK的路径即可,但是在实际生成example的过程中,出现了大量关于VTK的LNK2001 LNK2019错误,而这两类错误大概率是由于找不到 lib 导致的,偏偏iMSTK编译的是静态链接库(为什么是这个选项我也不知道),项目属性是没有链接器这个选项的。
打开单个example的解决方案,添加VTK的 lib 后可以编译生成成功,但是在运行的时候出现 VTK函数报错或无法连接到动态链接库的错误,暂未找到有效解决方案(已添加相关 dll 文件到运行目录下还是同样报错)。


最后再放两个例子截图:
IMSTK在Windows下的编译安装
IMSTK在Windows下的编译安装


加油铁子????