如何强制 MATLAB 2016a 使用 gcc-4.7.x 而不是我拥有的 (gcc-5.4.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.

我已经使用 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:

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

  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,请在 ~/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二进制文件的正确位置。

  1. 打开 MATLAB 并按照编译 MatConvNet 的说明进行操作。

相关内容

  • 没有找到相关文章

最新更新