我在Linux上运行Matlab(初级操作系统)
我面临的问题是Matlab与高于4.9的gcc编译器不兼容
同样的问题:https://www.mathworks.com/matlabcentral/answers/348906-downgrading-gcc-g-for-use-with-mex
当我使用" sudo apt get install gcc" 5.4自动安装。当我删除5.4时,Matlab将无法识别我已安装的4.9。我如何让Matlab将gcc / g ++ 4.9识别为我的编译器?
我也跟着这个,但它没有解决问题:
https://www.mathworks.com/matlabcentral/answers/137228-setup-mex-compiler-for-r2014a-for-linux#answer_263109
任何帮助将不胜感激。
答案 0 :(得分:1)
当我删除5.4时,Matlab将无法识别我已安装的4.9。如何让Matlab将gcc / g ++ 4.9识别为我的编译器?
我使用的是Ubuntu(从中派生出OS),并且遇到了类似的问题。基本上,您可以使用update-alternative
在您选择的gcc
版本之间切换。这是一个link,解释了如何做到这一点。
以下是update-alternative
上的documentation,如果您需要更深入了解其功能。
请注意,此解决方案不再需要卸载发行版的默认gcc
(在您的情况下为5.4):您可以在不使用Matlab时切换回它以进行开发。如果需要,您甚至可以安装两个以上版本的gcc
。
希望这能解决您的问题。
答案 1 :(得分:1)
没有理由降级GCC for MATLAB。
您在Linux上遇到问题的原因是因为MATLAB安装了自己的GCC库副本。如果您的MEX文件需要更新的库,它们将会失败。您可以删除MATLAB附带的GCC库,它将使用您系统中较新的库。
对于32位MATLAB,库为$(MATLABROOT)/sys/os/glnx86
,对于64位MATLAB,库为$(MATLABROOT)/sys/os/glnxa64
。 $(MATLABROOT)
是MATLAB的安装根目录。
有问题的文件是libgcc_s.so*
,libstdc++.so*
和libg2c.so*
(至少它们曾经像这样被调用,我这里没有安装Linux MATLAB来加倍检查)。
这个技巧适用于MATLAB 7.0,并且在一个月前我向同事提出此建议时仍然有效。
我建议您重命名或移动文件,以便在出现问题时可以替换它们。
当然,您需要在此更改后重新启动MATLAB。