【问题标题】:Choosing a default gcc/g++ compiler选择默认的 gcc/g++ 编译器
【发布时间】:2018-03-20 23:04:31
【问题描述】:

我在 linux (Elementary OS) 上运行 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
任何帮助将不胜感激。

【问题讨论】:

  • 想通了。这是遇到相同问题的任何人的解决方案:codeyarns.com/2015/02/26/…
  • 评论是暂时的;如果您找到了解决方案,请撰写并提交答案。

标签: c++ matlab gcc


【解决方案1】:

当我删除 5.4 时,Matlab 将无法识别我安装的 4.9。如何让 Matlab 将 gcc/g++ 4.9 识别为我的编译器?

我使用的是 Ubuntu(你的操作系统是从它派生的)并且遇到了类似的问题。基本上,您可以使用update-alternative 在您选择的gcc 版本之间切换。这是一个link,它解释了如何做到这一点。

这里是update-alternative 上的documentation,如果您需要更深入地了解其功能。

请注意,此解决方案不再需要为您的发行版(在您的情况下为 5.4)卸载默认的 gcc:您可以在不使用 Matlab 时切换回它进行开发。如果需要,您甚至可以安装两个以上版本的gcc

希望这能解决您的问题。

【讨论】:

  • 是的,我也评论了自己的帖子。感谢您抽出宝贵时间。
【解决方案2】:

没有理由为 MATLAB 降级 GCC。

您在 Linux 上遇到问题的原因是 MATLAB 安装了自己的 GCC 库副本。如果您的 MEX 文件需要更新的库,它们将会失败。您可以删除 MATLAB 附带的 GCC 库,它将使用您系统上较新的库。

库位于 $(MATLABROOT)/sys/os/glnx86 用于 32 位 MATLAB,$(MATLABROOT)/sys/os/glnxa64 用于 64 位 MATLAB。 $(MATLABROOT) 是 MATLAB 的安装根目录。

有问题的文件是 libgcc_s.so*libstdc++.so*libg2c.so*(或者至少它们以前是这样调用的,我这里没有安装 Linux MATLAB 来仔细检查)。

这个技巧适用于 MATLAB 7.0,并且在一个月前我向同事建议时仍然有效。

我确实建议您重命名或移动文件,以便在出现问题时替换它们。

当然,在进行此更改后,您需要重新启动 MATLAB。

【讨论】:

    猜你喜欢
    • 2020-07-13
    • 2011-03-09
    • 1970-01-01
    • 2012-09-10
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    相关资源
    最近更新 更多