在linux服务器上安装gcc 9.4.0的过程(安装torch-int库出的问题)

问题描述

现在是需要在服务器上安装github里面的torch-int这个库。在按照其命令安装时,遇到了这个问题:

    g++: error: unrecognized command line option ‘-std=c++17’
    g++: error: unrecognized command line option ‘-fno-plt’
    gmake[1]: *** [CMakeFiles/cmTC_b3ba0.dir/testCXXCompiler.cxx.o] Error 1
        gmake: *** [cmTC_b3ba0/fast] Error 2
  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:41 (project)
make: *** No targets specified and no makefile found.  Stop.

按照我以前的思路肯定是只看最后一行。但是现在应该纠正这个思路,所以我就应该从gcc 9.4.0安装入手

gcc 9.4.0安装

第一个报错,需要依赖文件

下载网址:
https://ftp.gnu.org/gnu/gcc/gcc-9.4.0/
下载里面那个tar.gz文件。

安装过程中报错为:configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

  1. 然后我用下面的几条命令去查自己的这三个库,发现它们都存在。
yum list installed | grep gmp-devel
yum list installed | grep mpfr-devel
yum list installed | grep libmpc-devel

给出的信息:

gmp.x86_64                              1:6.0.0-15.el7                 @anaconda

这表示我已经有这个包。另外两个包同理。
2. 用下面的指令去查找这三个包的位置:

rpm -ql gmp

发现它们的位置都在/usr/lib64里面。我用下面的命令重新安装gcc-9.4.0:

./configure --prefix=/usr/lib64/mpc --with-gmp=/usr/lib64/gmp --with-mpfr=/usr/lib64/mpfr

还是报一样的错!
看来,需要自己重新装上面那三个包了。因为我怀疑是我没办法访问/usr/lib64这个文件夹。

安装gmp, mpfr, mpc这三个包

首先,自己在官网上(或者镜像网站)下载了一个gmp-6.1.2的包。
其次,将它传到自己的服务器账号的某个文件夹中。
然后,在这个文件夹目录下执行以下命令:

xz -d gmp-6.1.2.tar.xz

tar xvf gmp-6.1.2.tar

cd gmp-6.1.2

./configure --prefix=/mnt/lustre/GPU8/home/liutielong/build/gmp

make  && make install

注意,这里的prefix=就是我自己想要给gmp的安装地址。
4. 安装MPFR。
5.安装mpc库。
反正就是一顿安装,在安装mpc库的时候报出来错误:error: ‘/usr/local/gmp/lib/libgmp.la’ is not a valid libtool archive。这个错误似乎很难解决,然后我在网上搜也没什么关于它的信息。绝望!
这时候,我只能假设是安装的这三个库版本有啥不兼容的问题了。重装!

完整的安装这三个包的过程

  1. 先把安装好的东西都删掉,在我的根目录下创建两个文件夹:build和packages_download。其中build文件夹专门用来安装各种包,packages_download文件夹专门用来放置远程传过去的各种tar.gz文件并解压。我的这两个文件夹现在长这样:

在这里插入图片描述
在这里插入图片描述
可以看到我下载的版本是:gmp-5.1.3, mpfr-4.2.0, mpc-1.3.1.
2. 让chatgpt给我生成了一个完整的安装这三个包的过程(chatgpt是真的强啊):
首先安装gmp:

tar -xf gmp-5.1.3.tar.gz
cd gmp-5.1.3
./configure --prefix=$HOME/build/gmp
make
make install

然后安装mpfr:

tar -xf mpfr-4.2.0.tar.gz
cd mpfr-4.2.0
./configure --prefix=$HOME/build/mpfr --with-gmp=$HOME/build/gmp
make
make install

最后安装mpc:

tar -xf mpc-1.3.1.tar.gz
cd mpc-1.3.1
./configure --prefix=$HOME/build/mpc --with-gmp=$HOME/build/gmp --with-mpfr=$HOME/build/mpfr
make
make install

最后就是配置它们的环境变量了,为了能找到它们(其实后面我感觉不配置这一步也行)。回到我的用户主目录,输入命令:

vi ~/.bashrc

然后在配置文件里面加上这一行:

export LD_LIBRARY_PATH=$HOME/build/gmp/lib:$HOME/build/mpfr/lib:$HOME/build/mpc/lib:$LD_LIBRARY_PATH

可恨的是我开始直接输入成export PATH=…了!导致我后面发现vi, ls这些指令全都command not found了!还好我最后发现了这个问题并把bashrc改回来了。反正就是很粗心!
还好,使用chatgpt的方法,简单高效地完成了这三个包的安装(所以前面按照参考文献的安装为啥失败了?我感觉操作都基本上一样啊,只是包的版本有不同)。安装过程中我认为最重要的就是各种路径。

一点小知识

$HOME表示我这个用户的根目录,它相当于:/mnt/lustre/GPU8/home/liutielong。这可以用命令(echo $HOME)来查看。

安装gcc-9.4.0

安装好三个包之后,就可以重新安装gcc-9.4.0了。
还是chatgpt给的安装流程。先下载了gcc-9.4.0.tar.gz,然后:

tar -xf gcc-9.4.0.tar.gz
cd gcc-9.4.0
./configure --prefix=$HOME/build/gcc-9.4.0 --with-gmp=$HOME/build/gmp --with-mpfr=$HOME/build/mpfr --with-mpc=$HOME/build/mpc --disable-multilib
make -j4

在经历了很长时间的编译之后,成功。运行:make install
之后回到主目录添加环境变量:

export PATH="$HOME/build/gcc-9.4.0/bin:$PATH"

成功!

再安装torch-int库

bash build_cutlass.sh这一步,还是报本文开头的错误!这时候我心里真的是哇凉哇凉的。然后我就去一行行看这个项目中的build_cutlass.sh文件:

export CUDACXX=/usr/local/cuda/bin/nvcc
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
cd submodules/cutlass
rm -rf build
mkdir -p build && cd build
cmake .. -DCUTLASS_NVCC_ARCHS=80 -DCUTLASS_ENABLE_TESTS=OFF -DCUTLASS_UNITY_BUILD_ENABLED=ON
make -j 16

原来,这里面的第2、3行路径得改!改成我刚刚安装的gcc-9.4.0的路径:

 export CC=$HOME/build/gcc-9.4.0/bin/gcc
 export CXX=$HOME/build/gcc-9.4.0/bin/g++

这样就可以啦!

总结

chatgpt才是最好的老师!不仅教我步骤,还能解释每个命令的意思,感觉事半功倍。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值