1

对于旧版本的 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.

我已经安装了 gcc-4.7 和 g++-4.7 使用apt-get install gcc-4.7 g++-4.7. 如何强制 MATLAB 使用这些版本而不是默认版本?

4

2 回答 2

0

很少有提示,而不是完整的教程如何做到这一点。可能最简单的方法是编辑 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++ 语言执行相同的操作。

于 2017-03-28T12:39:03.787 回答
0

这适用于 R2016b:

  1. apt install使用(在我的情况下为 gcc-4.9 和 g++-4.9)安装所需的 GCC 版本。

  2. 在您的家中创建一个bin文件夹,即~/bin.

  3. 创建以下链接ln

    • ln -s /usr/bin/gcc-4.9 ~/bin/gcc
    • ln -s /usr/bin/g++-4.9 ~/bin/g++
  4. 如果使用 CUDA,请在文件夹中创建一个名为nvcc~/bin文件,其中包含以下内容(不要忘记使其可执行:)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

  1. 打开 MATLAB 并按照说明编译 MatConvNet。
于 2018-02-09T18:21:35.280 回答