记一次Linux环境下的C++程序调试编译过程(SlicerExecutionModel+FADTTSter)

/ 0评 / 2

亲戚是医生,需要用到一个Linux下运行的医学类的软件(FADTTSter),Github上有源码,但折腾了好久也没编译出来,后来找到了我,我以前也没做过Linux下的程序开发和编译,但感觉源码都有了编译出来应该难度也不大,就答应了,折腾了一番发现坑还不少,网上相关的资料也不多,最终还是编译出来了,在此记录一下,希望能帮助到通过搜索引擎过来的读者。

注:本文面向的阅读人群是非信息类专业人员,文字内容是工作完成后编写的,就没再写趟坑的过程,操作是在Ubuntu虚拟机中完成的,文章末尾有本文涉及的部署文件的下载链接,按照文章顺序操作,一定可以出结果的。


主要步骤:

一、安装ubuntu虚拟机
二、安装Qt5
三、安装cmake
四、编译并安装ITK
五、编译并安装VTK
六、编译并安装SlicerExecutionModel
七、编译并运行FADTTSter


一、安装ubuntu虚拟机

1. 安装vmware
2. 安装完成后打开vmware player,点击“创建新虚拟机”按钮
3. 选择ubuntu的iso镜像文件:

4. 一路点下一步,输入的个人信息记住,建议在联网模式下安装,否则vmtools可能会安装不成功。
5. 点击“完成”按钮后就一直等待就行了

将“安装文件”文件夹拷贝到虚拟机中,我是放到desktop了,后边的所有默认起始路径都是desktop。后边所有操作都要在有网络的环境下进行。


二、安装Qt5

1
sudo sudo apt-get install qt5-default

安装完后,还需安装qttools5,后边会用到它的组件

1
sudo apt-get install qttools5-dev

将会下载大约300MB的文件


三、安装cmake

1
2
3
sudo apt-get update
sudo apt-get install -y build-essential
sudo apt-get install cmake-curses-gui

按提示操作。

1
sudo apt-get install freeglut3-dev

按提示操作。


四、编译并安装ITK
ITK是SlicerExecutionModel的依赖项,要提前安装。
解压缩4.InsightToolkit-5.1.0.tar.gz
然后:

1
2
3
4
cd /home/test/Desktop/4.InsightToolkit-5.1.0/InsightToolkit-5.1.0
mkdir build
cd build
ccmake ..

弹出界面,输入c,进入configure,参数用默认的,等一段时间,下边没有提示变化后,输入c ,下方提示100%后完成配置,再输入g,保存退出。

执行:

1
make

执行时间比较长,个把小时吧,只要不是报错导致程序中断,一直等待即可。
执行完毕后安装:

1
sudo make install

五、编译并安装VTK
过程和ITK类似:
解压缩5.VTK-8.2.0.tar.gz
然后:

1
2
3
4
cd /home/test/Desktop/5.VTK-8.2.0/VTK-8.2.0
mkdir build
cd build
ccmake ..

程序会做环境检查,等待一段时间,弹出界面,这里需要注意,点击t,进入高级设置模式,CMAKE_BUILD_TYPE改成Release

按箭头向下翻到第5页,这两项设置成On,不然后边会提示缺失组件

输入c,进入configure,可能会出现找不到Qt5的错误提示,点e退出后,会增加一行让你输入Qt5路径的选项,输入默认路径(截图路径不对,文字为准):
/home/test/Qt5.12.8/5.12/gcc_64/lib/cmake/Qt5

设置完回车,输入c ,下方提示100%后完成配置,看是否出现如下提示,如果出现了,再输入g,保存退出。

执行:

1
2
cmake .
make

执行时间比较长,比ITK还要长,只要不是报错导致程序中断,一直等待即可。
执行完毕后安装:

1
sudo make install

六、编译并安装SlicerExecutionModel
解压文件6.SlicerExecutionModel-master.zip
然后:

1
2
3
4
cd /home/test/Desktop/6.SlicerExecutionModel-master/SlicerExecutionModel-master
mkdir build
cd build
ccmake ..

输入c,进入configure,默认设置不动,输入c,完成configure,输入g,退出配置。
执行:

1
2
cmake .
make

执行完毕后安装:

1
sudo make install

七、编译并运行FADTTSter
这一步一定要联网操作,它需要从网络上下载很多东西:
后边的操作是边make、边修改源代码问题。

解压文件7.FADTTSter-master.zip
然后:

1
2
3
4
cd /home/test/Desktop/7.FADTTSter-master/FADTTSter-master/src
mkdir build
cd build
ccmake ..

输入c,进入configure,会弹出错误,提示这两个文件没找到:

输入e 退出,然后在界面中输入这个路径:

1
/home/test/Desktop/6.SlicerExecutionModel-master/SlicerExecutionModel-master/build

输入c,完成configure,再输入c确认configure,输入g,退出配置。
执行:

1
2
cmake .
<span style="color: #ff0000;">sudo make</span>

输入完sudo make后,报错了,因为源代码有问题,需要修改下源代码:

错误提示代码中引用的这个文件找不到,看名称这是个说明文件,文本编辑器中打开这个文件,直接删掉那段引用的话:

然后,回到命令行界面,再运行sudo make,又报错:

按错误信息修改,将isnan改成 std::isnan

然后,回到命令行界面,再运行sudo make,warning信息不用管,只要不是error中断就行,一直等着。

执行完毕后运行程序:

1
../bin/FADTTSter

弹出程序主界面如下:

 


相关文件的下载地址:

度盘:https://pan.baidu.com/s/1dfieQdGJPzyuMBmFLrXR8w
提取码:e0wq

其中,test.zip是虚拟机文件,用vmware可以直接打开,里边的软件是编译好可直接运行的。

发表评论

邮箱地址不会被公开。 必填项已用*标注