选择默认的gcc / g ++编译器

时间:2018-03-20 23:04:32

标签: c++ matlab gcc

我在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
任何帮助将不胜感激。

2 个答案:

答案 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。

相关问题