centos make gcc报错/usr/bin/ld: cannot find -lstdc++ collect2: error: ld returned 1 exit status

make[1]: *** [Makefile:22759:stage1-bubble] 错误 2 make[1]: 离开目录“/home/dev2/gcc-7.5.0/build” make: ***
打开config.log看到报错:

/usr/bin/ld: cannot find -lstdc++ collect2: error: ld returned 1 exit status

解决方案:
查找libstdc++.so的路径:

sudo find / -name "libstdc++.so"

看到的路径是:

/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so

执行命令设置 LD_LIBRARY_PATH 环境变量(你具体查出来的路径是什么就换成你查出来的路径):

export LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so:$LD_LIBRARY_PATH

使用以下命令来验证 LD_LIBRARY_PATH 的设置:

echo $LD_LIBRARY_PATH

查询结果:

/usr/lib/gcc/x86_64-redhat-linux/4.8.2::/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/:/usr/local/isl/lib

切换到库所在的目录:

cd /usr/lib/gcc/x86_64-redhat-linux/4.8.2

查看:

[root@localhost 4.8.2]# ls
32             crtprec80.o        libgcc_eh.a         libitm.spec
crtbegin.o     finclude           libgcc_s.so         libquadmath.so
crtbeginS.o    include            libgcov.a           libstdc++.a
crtbeginT.o    libasan_preinit.o  libgfortranbegin.a  libstdc++.so
crtend.o       libasan.so         libgfortran.so      libsupc++.a
crtendS.o      libatomic.so       libgfortran.spec    libtsan.so
crtfastmath.o  libcaf_single.a    libgomp.a           rpmver
crtprec32.o    libcloog-isl.so.4  libgomp.so
crtprec64.o    libgcc.a           libgomp.spec

若:libstdc++.so是红色的说明是软链接错误。
查看软链接:

[root@localhost 4.8.2]# ll libstdc++.so
-rw-r--r--. 2 root root 13172960 72 17:24 libstdc++.so -> ../../../../lib64/libstdc++.so.6.0.19

去lib64目录下查看,找不到libstdc++.so.6.0.19文件。
解决方案重新建立软链接:

sudo mv libstdc++.so  ../../../../lib64/libstdc++.so.6.0.19
ln -s /usr/local/lib64/libstdc++.so.6.0.24   /usr/lib64/libstdc++.so.6

注意:若libstdc++.so不是红色不要进行该软链接操作,防止把系统搞坏了。
最后去原来的目录 make -j4就可以了,不在报这个错误了。
我是在装gcc-11.2.0遇到的该问题。
操作要慎重,最好备份原来的文件。修改底层库有几率系统崩溃。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值