Matlab r2012a学生版中编译spm12的mex文件

Matlab r2012a学生版中编译spm12的mex文件

2012 年,我购买了 Matlab 学生版(r2012a,32 位),现在已将其安装在我的 Ubuntu 14.04.2 LTS 上。到目前为止,一切正常。

但是,我想安装 SPM12(一种用于分析功能性神经影像(和其他)数据的软件,为此我需要编译某些 mex 文件。根据可访问的安装说明这里,我需要运行一些命令,像这样

cd /home/login/spm12/src
make distclean
make && make install
make external-distclean
make external && make external-install

然而,虽然更改驱动器(显然)并 make distclean 似乎运行没有问题,但在运行 make && make install 时收到一些警告,如下所示:

mex -O -largeArrayDims -c spm_vol_utils.c -DSPM_UNSIGNED_CHAR 

Warning: You are using gcc version "4.8.4-2ubuntu1~14.04)".  The version
     currently supported with MEX is "4.4.6".
     For a list of currently supported compilers see: 
     http://www.mathworks.com/support/compilers/current_release/

mv -f spm_vol_utils.o  utils_uchar.mexa64.o

我收到大约 15 个这样的警告(显然是针对要编译的各种 mex 文件)。看来,我需要使用 gcc 版本 4.4.6 来编译这些文件,但在线搜索帮助没有带来任何成功,也没有运行 sudo apt-get install gcc-4.4

关于如何编译这些文件有什么建议吗?

答案1

好的,再搜索五分钟可能会帮助我找到答案。 这里是如何将 gcc 设置为旧版本的说明。

答案2

首先,你确定文件编译失败吗?警告通常就是这样(警告,而不是错误)。

如果您确实想使用 gcc-4.4.x 进行编译,那么仍然可以从 Ubuntu 14.04 存储库中以软件包形式获取它gcc-4.4(尽管至少在 14.04.2 中它似乎是次要版本 4.4.7 而不是 4.4.6)。您应该能够通过软件中心(或突触包管理器,如果已安装)或从命令行使用来安装它

sudo apt-get install gcc-4.4

除非你对二进制文件进行符号链接以使其成为系统的默认编译器(我会不是推荐),您可能需要修改文件mexopts.sh以直接指向 gcc-4.4 ie

CC='gcc-4.4'

如果您的文件需要,可以对 g++ 使用相同的过程,g++-4.4CXX='g++-4.4'mexopts.sh.

相关内容