将 Fedora 23 上的 C/C++ 编译器降级为与 MATLAB R2016a 兼容的编译器

Downgrading C/C++ compiler on Fedora 23 to a MATLAB R2016a-compatible compiler

我想从 C/C++ 源代码构建 MEX 函数以启用 MATLAB 脚本访问,但我当前版本的 Fedora 具有较新且不兼容的 GCC。我尝试删除已安装的 GCC 并使用 sudo dnf gcc-4.7.x(x = [1, 2, 3, 4])安装 4.7.x 版本的 GCC,但似乎none 这些版本托管在 Fedora 软件包存储库中。

有没有其他方法可以在较新的 Fedora 版本上安装旧版本的 GCC?

你必须下载gcc源码,然后自己编译gcc。 Fedora 存储库是特定于版本的。 Fedora 早期版本的 gcc 不包含在 Fedora 的后续版本中。

虽然可以手动下载早期版本的 gcc,但由于版本冲突,rpm 不太可能同意安装它,因为版本冲突。可能有人会建议使用 --force 强制安装不兼容的 gcc 版本。唉,这样的建议很可能导致无法启动。

所以唯一可行的答案是自己下载并构建 gcc;使用将 gcc 安装到非默认位置的自定义配置,以避免覆盖系统安装的 libstdc++。这不是一项微不足道的任务,几年前我自己做过。

TL;DR: 如果你一定要问这样的问题,那是不可能的。


1) 您可以同时安装任意多个版本的 gcc/g++。 2) 删除系统编译器不是一个好主意。

Gcc-4.7 : 简单,从 "Redhat devtoolset-1.1" http://linux.web.cern.ch/linux/devtoolset/ 安装 [所需的包] → → # wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo

devtoolset-1.1 和 devtoolset-2 是为 RHEL6 创建的,因此我们必须为 devtoolset-(1.1) 安装一些旧文件:compat-gmp-4.3.1-11.fc23.x86_64.rpmcompat-mpfr-2.4.1-7.fc23.x86_64.rpm .... 链接: 兼容 gmp https://drive.google.com/file/d/0B7S255p3kFXNbTBSS21jdWlvRXM/view?usp=sharing - compat-mpfr https://drive.google.com/file/d/0B7S255p3kFXNOG8wYU1sY0lkQWc/view?usp=sharing

然后你可以使用 # dnf install --nogpgcheck devtoolset-1.1-gcc-c++

安装 devtoolset-1.1 中的 4 个包(gcc-c++ 和依赖项、、、gcc 等)

启用 gcc-4.7 : $ scl enable devtoolset-1.1 bash ... 和 gcc -v 会说 "gcc version 4.7.2"(该设置在您退出终端之前有效。)