Hello everyone:
I started running SPM5 on the newest Matlab 2007 on a Linux system. SPM5
crashed due to a problem with a Matlab C routine, which I will explain below.
As a first attempt to fix the problem, I installed a new copy of SPM5.
Then I went into the src directory where the C routines are. I typed make
all to run the make file and compile the C routines on my machine. The
error message I received was Unknown platform Linux -i686. Can someone
give me information on how to compile the C routines and take care of any
linking or loading that may be necessary to get SPM5 functions to call the
C functions.
Here is the original problem I encountered. spm_smooth calls spm_conv_vol,
which is a C routine or mexfile. The flow of control doesn't go to
spm_conv_vol. Instead it goes to spm_write_plane.m. So I assume that
somehow a wrong address is getting loaded somewhere. spm_write_plane then
calls the Matlab routine subasgn, but the flow of control goes to
subsref.m, not subasgn. That calls the Matlab function rec, which then
returns and that is where an exception is thrown and Matlab exits completely.
If this were all C, I would assume that the linker and loader take care of
the addresses of the function and it would be in the object file in Common
Object File Format. However, with SPM and Matlab and C routines, I do not
know how this works. This is why I am trying to re-install SPM from scratch.
Thank you for any information.
Linda
[log in to unmask]
|