如果是在 Debian/Ubuntu 系统下,且具有管理员权限,可以通过以下命令安装和验证:
sudo apt update
sudo apt install gcc
sudo apt install g++
sudo apt install gfortran
gcc --version
g++ --version
gfortran --version
Linux系统在没有管理员权限的情况下,这时候需要通过源码来手动安装。GCC 官网为:https://www.gnu.org/software/gcc/。
安装命令为:
wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
tar xf gcc-13.2.0.tar.gz
cd gcc-13.2.0
./contrib/download_prerequisites
mkdir build && cd build
unset LIBRARY_PATH
../configure --prefix=$HOME/local/gcc --enable-languages=c,c++,fortran --disable-multilib
make -j$(nproc) && make install
最后一行的编译时间会比较久,可能 30 分钟到几小时,在第三方超算上可能会被自动杀死程序,可以考虑用脚本提交任务来进行编译(需要进入到上面的那个目录中):
#!/bin/sh
#PBS -N task
#PBS -l nodes=1:ppn=1
make -j$(nproc) && make install
编译后,在用户目录中会多一个 local 文件夹。
接下来设置环境。在用户目录中,在 ~/.bashrc 中增加内容:
export PATH="$HOME/local/gcc/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/local/gcc/lib64:$LD_LIBRARY_PATH"
然后加载配置:
source ~/.bashrc
验证安装:
gcc --version
g++ --version
gfortran --version
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】
您好,我按照您的步骤出错误了:make[3]: *** [Makefile:1157: c/c-fold.o] Error 1
make[3]: *** [Makefile:1157: c/gimple-parser.o] Error 1
make[3]: *** [Makefile:1157: c/c-parser.o] Error 1
/bin/sh ../../gcc/../move-if-change tmp-output.cc insn-output.cc
echo timestamp > s-output
/bin/sh ../../gcc/../move-if-change tmp-automata.cc insn-automata.cc
echo timestamp > s-automata
/bin/sh ../../gcc/../move-if-change tmp-attrtab.cc insn-attrtab.cc
/bin/sh ../../gcc/../move-if-change tmp-dfatab.cc insn-dfatab.cc
/bin/sh ../../gcc/../move-if-change tmp-latencytab.cc insn-latencytab.cc
echo timestamp > s-attrtab
make[3]: Leaving directory '/home/test01/software/gcc-13.2.0/build/gcc'
make[2]: *** [Makefile:4979: all-stage1-gcc] Error 2
make[2]: Leaving directory '/home/test01/software/gcc-13.2.0/build'
make[1]: *** [Makefile:30190: stage1-bubble] Error 2
make[1]: Leaving directory '/home/test01/software/gcc-13.2.0/build'
make: *** [Makefile:1088: all] Error 2这是出什么问题了?
我这边安装到两个地方都没有什么问题。你可以多问下 AI,多找找解决方法。
可以按这样的流程步骤进行测试:
(1)删除文件夹,重新解压和编译,重新操作一遍,看是否可以正常编译,以及是否会出现相同的错误。
(2)如果有其他的 Linux 主机或超算,可以在其他地方做个测试,看是否会报错。
(3)检查下当前的 Linux 环境内存是否充足,内存最好大于 8G。如果内存不足,可以做内存的限制处理,对应的方法也可以问 AI。
(4)在当前 Linux 环境中,系统依赖可能不满足,缺少库或工具链,可以根据 AI 提示安装可能缺少的依赖包,然后重新编译。
(5)也可能是当前的 GCC 版本和当前系统依赖不兼容,可以尝试安装更早版本的 GCC,看是否可以编译通过。