不太方便..你可以跑一个gcc版本新的容器
可以试试手动编译,但我不敢保证绝对能行
我也不推荐手动编译gcc这种程序..
最简单的方法就是去清华镜像站lxc-image那里找一个gcc比较新的发行版的rootfs
下载解压
sudo chroot /xxx(这是你解压后文件的地方)
然后安装gcc 😂
最简单的方法就是去清华镜像站lxc-image那里找一个gcc比较新的发行版的rootfs
下载解压
sudo chroot /xxx(这是你解压后文件的地方)
然后安装gcc 😂
试试systemd-nspawn
新旧gcc可以共存。
楼上说了不少容器的方案。不用容器也可以,你需要自行编译gcc,安装的时候安装位置需要不在path中,或者在path中的优先级低于旧gcc。
然后你只需要在终端中临时修改path变量的值,将新gcc的位置引入并且放在旧gcc的位置前面,就能在终端环境中使用新的gcc,而系统仍然使用旧gcc,不影响正常运行。
我自己编译的gcc 12.2.0, 编译好用sudo make install 安装,用了大概2周了,没有问题,但是这么做会更新libc。
我是用v23 alpha
不太方便..你可以跑一个gcc版本新的容器
我不会弄容器啊,只是个普通用户,容器这种高级特性我只是听说过,从来没有折腾过。不过还是谢谢,指了一个方向。
新旧gcc可以共存。
楼上说了不少容器的方案。不用容器也可以,你需要自行编译gcc,安装的时候安装位置需要不在path中,或者在path中的优先级低于旧gcc。
然后你只需要在终端中临时修改path变量的值,将新gcc的位置引入并且放在旧gcc的位置前面,就能在终端环境中使用新的gcc,而系统仍然使用旧gcc,不影响正常运行。
谢谢!我也看了gcc 的安装说明,可以用 --program-suffix, 或者 --program-prefix, 或者 --program-transform-name, 为编译的可执行程序改个名,比如加上个后缀,把 gcc 变成 gcc-12,名字不一样,这样新版本就不会干扰旧版本了。
我自己编译的gcc 12.2.0, 编译好用sudo make install 安装,用了大概2周了,没有问题,但是这么做会更新libc。
我也试试自己编译 gcc 12,正在 make。我想再请教一下,怎么设置 mpicc, mpifort 之类的脚本,让它们调用新版的 gcc 或者 gfortran, 而不是老版的?
现在我用 mpifort --showme 命令看到的消息是:
$ mpifort --showme
gfortran -I/usr/lib/x86_64-linux-gnu/openmpi/include -pthread -I/usr/lib/x86_64-linux-gnu/openmpi/lib -Wl,--enable-new-dtags -L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi
就是想把其中的 gfortran 改为 gfortran-12 ,不知道怎么改。
试试systemd-nspawn
我只查到软件仓库里的 systemd-container 提供 systemd-nspawn, 还得学学这个怎么用,感觉像是虚拟机。
最简单的方法就是去清华镜像站lxc-image那里找一个gcc比较新的发行版的rootfs
下载解压
sudo chroot /xxx(这是你解压后文件的地方)
然后安装gcc 😂
我查了 archlinux 的,gcc 版本是12.2.0 的。debian 更新的太慢了,连带着 deepin 的软件包一个个的也很老。
我只查到软件仓库里的 systemd-container 提供 systemd-nspawn, 还得学学这个怎么用,感觉像是虚拟机。
-D就是chroot了
如果-bD就是模拟启动
我不会弄容器啊,只是个普通用户,容器这种高级特性我只是听说过,从来没有折腾过。不过还是谢谢,指了一个方向。
其实可以简简单单装个 nix,配置 bfsu 镜像后 nix-shell -p gcc 就能在当前 shell 用 gcc 11 了。用其他 gcc 版本可能稍微麻烦一点,不能简单地用 nix-shell -p,需要在你的工作目录写一个 shell.nix,但有一个比较新的 gcc 可能对于你来说就足够了。
源代码编译安装,默认位置 /usr/local,就可以了。
Popular Events
More

中文 
我的deepin 20.8系统的gcc版本是8.3.0:
$ gcc --version
gcc (Uos 8.3.0.3-3+rebuild) 8.3.0
本来我也不关心gcc的版本号,只是我想安装的AMD数学库 AOCL需要gcc 11.2。这个AOCL最新版是4.0的,我能查到最老的AOCL是3.0版的,也需要gcc 10.2版。总之deepin里的gcc版本是太旧了,而AOCL只提供编译好的库,也不提供源代码让咱们编译。
那么问题就是:
现在我不敢乱动。请大家帮忙解惑,谢谢!