旧版本的MATLAB有一些关于此的帖子,但它们似乎不适用于R2016a。
我正在尝试在Ubuntu 16.04上安装MatConvNet。当我按照此处所述运行vl_compilenn
命令时,它会给我一个警告,如下所示:
Building with 'gcc'.
Warning: You are using gcc version '5.4.1'. The version of gcc is not supported.
The version currently supported with MEX is '4.7.x'. For a list of currently supported
compilers see: http://www.mathworks.com/support/compilers/current_release.
我已经使用 apt-get install gcc-4.7 g++-4.7
安装了 gcc-4.7 和 g++-4.7 .如何强制 MATLAB 使用这些版本而不是默认版本?
提示很少,不是完整的教程如何做到这一点。可能最简单的方法是编辑 MATLAB 的 Mex XML 配置文件:
mex -setup C
cc = mex.getCompilerConfigurations('C', 'Selected')
edit(cc.MexOpt)
mex 安装程序通常会在您的主文件夹 ( ~/.matlab/<version>/mex_C_glnca64.xml
( 中创建副本,因此您应该能够在没有 root 的情况下对其进行编辑。
在那里,您可能需要更改该部分:
<GCC>
<cmdReturns name="which gcc" />
</GCC>
我猜它会搜索 gcc
命令到您的 gcc 版本的位置并将其分配给 $GCC
变量。另外,您可以更改标题中的版本名称。
此外,您需要对C++语言执行相同的操作。
这适用于 R2016b:
-
使用
apt install
安装所需的 GCC 版本(在我的情况下为 gcc-4.9 和 g++-4.9(。 -
在家中创建一个
bin
文件夹,即~/bin
. -
使用
ln
创建以下链接:-
ln -s /usr/bin/gcc-4.9 ~/bin/gcc
-
ln -s /usr/bin/g++-4.9 ~/bin/g++
-
-
如果使用 CUDA,请在
~/bin
文件夹中创建一个名为nvcc
的文件,其中包含以下内容(不要忘记使其可执行:chmod +x ~/bin/nvcc
(:
内容:
#!/bin/sh
exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc -ccbin gcc-4.9 "$@"
如有必要,请将/usr/lib/nvidia-cuda-toolkit/bin/nvcc
替换为nvcc
二进制文件的正确位置。
- 打开 MATLAB 并按照编译 MatConvNet 的说明进行操作。