2017-03-16 67 views
1

對於舊版本的MATLAB,有一些關於此的帖子,但它們似乎不適用於R2016a。如何強制MATLAB 2016a使用gcc-4.7.x而不是我有的(gcc-5.4.1)?

我試圖在Ubuntu 16.04上安裝MatConvNet。當我運行命令描述here,它給了我一個警告如下:

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使用這些版本而不是默認版本?

+0

您是否按照[文檔中提供的]步驟(https://www.mathworks.com/help/matlab/matlab_external/changing-default-compiler.html#bunsr9g)? – excaza

+0

是的,但它要麼改變'$ PATH'(我不太喜歡這樣做),要麼爲每個'mex'調用改變編譯器。是否有可能在matlab啓動過程中更改mex支持的gcc編譯器? – Pras

回答

0

幾個提示,不是一個完整的教程如何做到這一點。 也許最簡單的將是編輯MATLAB的墨西哥XML配置文件:

mex -setup C 
cc = mex.getCompilerConfigurations('C', 'Selected') 
edit(cc.MexOpt) 

的MEX設置通常在您的個人文件夾(~/.matlab/<version>/mex_C_glnca64.xml)創建一個副本,所以你應該能夠在不根對其進行編輯。

有你可能需要修改的部分:

<GCC> 
    <cmdReturns name="which gcc" /> 
</GCC> 

我猜對gcc命令的位置搜索到你的gcc版本,並將其分配給$GCC變量。另外,您可以更改標題中的版本名稱。

此外,您還需要爲C++語言執行相同的操作。

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,創建一個文件名爲在~/bin文件夾nvcc,包含以下內容(唐別忘了讓它可執行:chmod +x ~/bin/nvcc):

內容:

#!/bin/sh 
exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc -ccbin gcc-4.9 "[email protected]" 

如果有必要與nvcc二進制的正確位置替換/usr/lib/nvidia-cuda-toolkit/bin/nvcc

  1. 打開MATLAB並按照instructions編譯MatConvNet。
相關問題