Hi Henk,
This is because MATLAB packages older C++ libraries within it’s installation for compatibility with older Linux distributions. The MATLAB environment sees these before the system provided equivalents (to which FSL 5+ has been compiled, but probably equate to those used for FSL4) by virtue of MATLAB setting LD_LIBRARY_PATH to point at the location of this folder of libraries). MATLAB support’s response on this issue was to evaluate whether your OS actually needs these libraries (most modern OSes don’t) and remove them if possible.
In version 5.0.4 we introduced a new MATLAB helper module, call_fsl.m which automatically removes these older libraries from the linker search path for the duration of the FSL call. However, I would strongly recommend updating your FSL release to 5.0.7 (or if this isn’t possible for some reason copying in the version of fsl/etc/matlab/call_fsl.m from 5.0.7) before using this module as several significant improvements have been made since 5.0.4 was released.
Duncan
On 30 Oct 2014, at 16:02, H van Steenbergen <[log in to unmask]> wrote:
> Dear FSL users,
>
> At our computer cluster we have run into problems when calling fsl commands from the matlab command window (fsl does work correctly when calling commands from the linux command prompt). This issue appears to be specific to FSL 5.0.4 and the error does not occur when using FSL 4.1.6. We use the MODULES command to load the correct FSL version.
>
> The problem is that running e.g. the following command “system(‘fslmaths’)” in matlab produces the error “fslmaths: /usr/local/matlabR2010A/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by fslmaths)”
>
> We learned that this is the case because when “module load fsl/5.0.4” is added in our .bashrc script, ”/opt/fsl-5.0.4/bin” will become part of the PATH environment variable. As soon as this folder is part of the PATH variable, we will get the error message indicated above.
>
> However, if the location ”/opt/fsl-5.0.4/bin” is removed from the PATH variable (e.g. manually, or by unloading the fsl 5.0.4. module and instead loading the fsl 4.1.6. module in the .bashrc file), no error is produced. Instead fslmaths now correctly shows the usage help (starting with the line Usage: fslmaths [-dt <datatype>] <first_input> [operations and inputs] <output> [-odt <datatype>]).
>
> Any idea why we get the “GLIBCXX_3.4.11' not found” error as soon as ”/opt/fsl-5.0.4/bin” becomes part of the PATH environment variable? And how do get rid of the error?
>
> Thanks for your help.
>
> Best,
>
> Henk van Steenbergen
--
Duncan Mortimer
Computing Officer, FMRIB Centre, University of Oxford
John Radcliffe Hospital, Oxford, UK
|