赞
踩
Ubantu 18.04系统,MobaXterm软件。
Compiling ANTs on Linux and Mac OS · ANTsX/ANTs Wiki · GitHub
不确定使用SuperBuild是否可行,遂一一安装developer tools。
可行,因为SuperBuild就是开发者模式的精简版,仅仅在ccmake配置的时候有变化。
git
sudo apt-get -y install git
gcc等
sudo apt-get install build-essential # 安装gcc和一些库函数,提供C/C++编译环境
Zlib
有的攻略装了,有的没有,我装了,但不知道有没有用。
sudo apt-get -y install zlib1g-dev
CMake
安装过程不会在linux系统安装教程中提到,这里列出:
以下为apt安装,但版本老旧,2023-3-22日安装位3.10.0版本,不可用。ccmake包含在gui这个库里。
sudo apt-get -y install cmake
sudo apt-get -y install cmake-curses-gui
失败记录:
安装最新版本CMake(3.26.0,2023-3-22),但是同样版本的ccmake不会被同时安装,国外帖子说是因为没有libncurses5-dev以及libncursesw5-dev(https://askubuntu.com/questions/1047829/ccmake-update-ubuntu-16-04-lts),于是我装了,不知道对后面成功经历是否有用。
sudo apt-get install libncurses5-dev libncursesw5-dev
- 1
重新configure、make、make install,编译完成后
ccmake --version
还是没有反应,如果还是3.10.0,也就是apt安装的旧版本,请删掉:sudo apt remove cmake sudo apt remove ccmake #只会删掉apt安装的版本.
- 1
- 2
遂尝试使用cmake的方法,即下次失败尝试。
ccmake用于在终端中打开ANTs的cmake配置,有教程说是可以用cmake-curses-gui(cmake自带),但我安装好后显示连接不到X-DISPLAY,无法配置。附上链接:成功经验!!!Ubuntu16.04安装ANTs_ubuntu_九天那个好揽月-DevPress官方社区 (csdn.net))。提示:文中bootstrap拼写错误,需要更改。
文中报错
CMake:Error at Source/QtDialog/CMakeLists.txt:28 (Message):Could not find a valid Qt installa
,我安装qt4无法解决,安装qt5后没有报错,以此类推,如果以后版本更新可能用qt6。sudo apt-get install qt5* sudo apt-get install qt5-default
- 1
- 2
编译没问题,cmake-gui命令显示连接不到X-DISPLAY,无法按照教程定位生成,可以的同学可以继续做。
在ANTs源代码CMakeLists.txt中,显示支持版本为3.16.3-3.19.7
set(ANTs_OLDEST_VALIDATED_POLICIES_VERSION "3.16.3")
set(ANTs_NEWEST_VALIDATED_POLICIES_VERSION "3.19.7")
cmake_minimum_required(VERSION ${ANTs_OLDEST_VALIDATED_POLICIES_VERSION}..${ANTs_NEWEST_VALIDATED_POLICIES_VERSION} FATAL_ERROR)
网址:Download | CMake,Older Releases中kitware下载,我选择3.19.6。
tar zxvf cmake-3.19.6.tar.gz #解压
sudo apt remove cmake # 移除旧版本,apt安装的版本
cd cmake-3.19.6
./configure
make
sudo make install #编译三部曲
cmake --version #查看camke版本
ccmake -- version #查看ccmake版本,与cmake版本要一致,不一致我报错了
此处我安装cmake之后,自动有对应版本的ccmake,可见至少此版本ccmake是cmake附带的,不知道与前面ncurses的两个库有没有关系。
此阶段出现的问题基本全都是网络问题。
配置代理
为防止出问题(之前出过),我每次打开都开代理。
CLONE ANTs
git clone git://github.com/ANTsX/ANTs.git #从github上克隆相应的仓库,保存在当前目录下的ANTs文件夹下
fatal: unable to connect to github.com:
github.com[0: 你的IP]: errno=Operation timed out
git config --global url."https://github.com".insteadOf git://github.com
运行
mkdir antsbin #创建antsbin文件夹
cd antsbin #进入antsbin文件夹
ccmake ../ANTs #进入cmake界面,按下'C'键,等待,出现设置,存放位置可以改,但不会的话可以不改。再按下'C'键和'G'键,完成设置,生成后回到命令行
ccmake的配置中,有几个最好改掉:
- RUN_LONG_TESTS 和 RUN_SHORT_TESTS 改成 OFF。不知道有没有用,似乎很多博主都建议改掉。
- BUILD_TESTING改成OFF,官方教程说这用来解决“Compilation starts but hangs with no error message”的问题。
- SuperBuild_ANTS_USE_GIT_PROTOCOL,这个设置2023-3-22已经没有了,如果持续卡在cloning into ITK5已经不是这个问题了,下面会说。
- 如果中途退出,还是要cd antsbin,在该文件夹下执行ccmake命令。
build
最有问题的阶段。
make -j 2 2>&1 | tee build.log # 建议直接用问题三中nohup命令
问题一:MobaXterm设置
卡在cloning into的时间非常久,不操作与服务器的连接会断,在MobaXterm-settings-configuration-SSH中,把SSH settings-SSH keepalive勾选上。
问题二:github问题
失败也可能是连接github有问题,除了上面提到的git config步骤,我选择了官方github-issue中有人建议的git config --global url."https://".insteadOf git://
,不清楚有没有用,但是我用了也成功了。
问题三:还是断线问题
直接nohup make -j 2 2>&1 | tee build.log &
,挂它一晚上,十二个小时后我再来已经成功了:
[100%] Built target ANTs
问题四:执行该命令失败,再执行报错:
Error removing directory "/data/zwz/build/ITKv5".
CMake Error at ITKv5-prefix/tmp/ITKv5-gitclone.cmake:12 (message):
Failed to remove directory: '/data/zwz/build/ITKv5'
CMakeFiles/ITKv5.dir/build.make:109: recipe for target 'ITKv5-prefix/src/ITKv5-stamp/ITKv5-download' failed
上一个新建的文件夹还在clone,新建一个antsbin,文件夹名随意,进入新文件夹下ccmake,也就是从运行-cd antsbin
开始重复。记得之后配置环境变量也要用新文件夹名。
卡在build step时,修改git配置提升clone速度。
git config --global http.postBuffer 524288000 # httpBuffer加大 git config --global http.maxRequestBuffer 100M git config --global core.compression 0 # 压缩配置 # 修改配置文件 export GIT_TRACE_PACKET=1 export GIT_TRACE=1 export GIT_CURL_VERBOSE=1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
最开始按照官方教程一步步来的时候似乎使用过该方法,好像有用,但最终没有成功,忘记是为什么了。
Install
cd ANTS-build
sudo make install 2>&1 | tee install.log
有博主提到不加sudo报错,我们从谏如流。附链接:ANTs安装踩坑记录 - 哔哩哔哩 (bilibili.com)。
编译完之后如果在 antsbin 目录下出现 bin 目录,就可以添加环境变量了,我没有 bin 目录,需要自己建立 bin 目录,并把三个地方的文件拷贝进去:
cd antsbin# 在 antsbin 目录下
mkdir bin #在antsbin下建立bin目录
cp ./ANTS-build/Examples/* ./bin # 将ANTS-build/Examples下的文件复制到bin目录中
cp ./staging/bin/* ./bin #将staging/bin下的文件复制到bin目录中
cp ../ANTs/Scripts/* ./bin #将ANTs/Scripts下的文件复制到bin目录中
cp ./ANTS-build/Examples/* ./bin
之后,显示该文件夹下有CMakeFiles文件夹,不能递归复制,可以用cp -r命令复制,不过我没管,后面测试也没问题,使用不知道有没有问题。
添加环境变量
vi ~/.bashrc
按i开始编辑,下面会变成INSERT模式,用方向键把光标移到最后空白行,加入:
export ANTSPATH=/data/username/antsbin/bin/
export PATH=“$ANTSPATH:$PATH”
我是存在根目录/data/username目录下的,找到自己新建的antsbin文件夹在哪,ANTSPATH改成对应路径。
按下Esc,退出编辑模式,按下冒号“:”(shift+:),输入wq,保存退出。
source ~/.bashrc
激活环境配置。
检验安装成功
which antsRegistration
输出文件位置。
antsRegistrationSyN.sh
输出使用说明。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。