【发布时间】:2018-05-04 02:52:16
【问题描述】:
我想用 freesurfer 的 lta-convert 转换一个变换矩阵。 如果我在我的 bash-shell 中运行以下命令(echo $0 显示 -bash)
lta_convert -inlta input.lta --outfsl output.mat
它运行没有问题:
$Id: lta_convert.cpp,v 1.9.2.1 2016/08/09 02:33:22 zkaufman Exp $
--inlta: input.lta input LTA transform.
--outfsl: output.mat output FSL matrix.
LTA read, type : 1
0.93123 0.02020 0.00726 -12.56508;
-0.00133 0.92407 0.00102 -2.41168;
0.00007 0.02780 1.00388 21.38016;
0.00000 0.00000 0.00000 1.00000;
FSLOUTPUTTYPE NIFTI_GZ
tkreg2FSL: mov det = 8, ref det = 1
INFO: FSL2FreeSurfer: Mov volume is NIFTI with positive det,
applying LR flip to registration matrix.
INFO: FSL2FreeSurfer: Ref volume is NIFTI with positive det,
applying LR flip to registration matrix.
lta_convert successful.`
但如果我尝试在包含以下两行的 shell 脚本中运行相同的命令:
#!/bin/bash
lta_convert -inlta input.lta --outfsl output.mat
它给我一个错误。
$Id: lta_convert.cpp,v 1.9.2.1 2016/08/09 02:33:22 zkaufman Exp $
dyld: lazy symbol binding failed: Symbol not found: ___emutls_get_address
Referenced from: /Applications/freesurfer/bin/../lib/gcc/lib/libgomp.1.dylib
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: ___emutls_get_address
Referenced from: /Applications/freesurfer/bin/../lib/gcc/lib/libgomp.1.dylib
Expected in: /usr/lib/libSystem.B.dylib
./test.sh: line 3: 91440 Abort trap: 6 lta_convert -inlta input.lta --outfsl output.mat
为什么会发生这种情况,我该如何解决? 其他 freesurfer 命令(如 mri_robust_register)从 shell 运行时没有问题。我在 Mac OS 10.12.4 上运行脚本。
【问题讨论】: